diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 202344a1e..cfa62ede6 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,12 +1,21 @@ -name: CI +name: SindbadCore.jl on: pull_request: + paths-ignore: + - 'docs/**' + - '*.md' branches: - main push: + tags: + - '*' branches: - main - tags: '*' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: test: name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} @@ -17,6 +26,7 @@ jobs: version: - '1.10' - '1.11' + - '1' os: - ubuntu-latest - macOS-latest @@ -44,10 +54,17 @@ jobs: restore-keys: | ${{ runner.os }}-test-${{ env.cache-name }}- ${{ runner.os }}-test- - ${{ runner.os }}- - - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-runtest@v1 + - name: Develop and test SindbadCore + shell: julia --project=test_env {0} + run: | + using Pkg + pkg"registry up" + Pkg.update() + pkg"dev ./SindbadCore" # Develop the package in the SindbadCore directory + Pkg.test("SindbadCore"; coverage=true) # Test the package named "SindbadCore" - uses: julia-actions/julia-processcoverage@v1 + with: + directories: SindbadCore/src - uses: codecov/codecov-action@v5 with: - file: lcov.info \ No newline at end of file + files: lcov.info \ No newline at end of file diff --git a/.github/workflows/Documenter.yml b/.github/workflows/Documenter.yml index 175d1e62e..384e1ddc1 100644 --- a/.github/workflows/Documenter.yml +++ b/.github/workflows/Documenter.yml @@ -1,43 +1,38 @@ -name: Documenter +name: Docs build and deploy on: - # Runs on pushes targeting the `master` branch. push: branches: - main tags: ['*'] pull_request: - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: write - pages: write - id-token: write - statuses: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. + concurrency: - group: pages - cancel-in-progress: false + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true jobs: - # Build job - build: + build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 + with: + persist-credentials: false - name: Setup Julia uses: julia-actions/setup-julia@v2 - - name: Pull Julia cache + with: + version: '1' + - name: Julia cache uses: julia-actions/cache@v2 - - name: Install documentation dependencies - run: julia --project=docs -e 'using Pkg; pkg"dev . ./lib/SindbadUtils ./lib/SindbadData ./lib/SindbadMetrics ./lib/SindbadSetup ./lib/SindbadTEM ./lib/SindbadML"; Pkg.instantiate(); Pkg.precompile(); Pkg.status()' - name: Build and deploy docs - uses: julia-actions/julia-docdeploy@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token - DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key - JULIA_DEBUG: "Documenter" - DATADEPS_ALWAYS_ACCEPT: true \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: > + cd docs; + julia --color=yes make.jl + - name: Upload site as artifact + uses: actions/upload-artifact@v4 + with: + name: Docs build + path: ./docs/build \ No newline at end of file diff --git a/governance4RnD.md b/CODE_OF_CONDUCT.md similarity index 100% rename from governance4RnD.md rename to CODE_OF_CONDUCT.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..2da7dc77d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,53 @@ +# SINDBAD Research and Development + +[![][docs-stable-img]][docs-stable-url][![][docs-dev-img]][docs-dev-url][![][ci-img]][ci-url] [![][codecov-img]][codecov-url][![Julia][julia-img]][julia-url][![License: GPL-3.0](https://img.shields.io/badge/License-GPLv3-blue)](https://github.com/EarthyScience/SINDBAD/blob/main/LICENSE) + + + +[docs-dev-img]: https://img.shields.io/badge/docs-dev-blue.svg +[docs-dev-url]: https://earthyscience.github.io/SINDBAD/dev/ + +[docs-stable-img]: https://img.shields.io/badge/docs-stable-blue.svg +[docs-stable-url]: https://earthyscience.github.io/SINDBAD/dev/ + +[codecov-img]: https://codecov.io/gh/EarthyScience/SINDBAD/branch/master/graph/badge.svg +[codecov-url]: https://codecov.io/gh/EarthyScience/SINDBAD + +[ci-img]: https://github.com/EarthyScience/SINDBAD/workflows/CI/badge.svg +[ci-url]: https://github.com/EarthyScience/SINDBAD/actions?query=workflow%3ACI + +[julia-img]: https://img.shields.io/badge/julia-v1.10+-blue.svg +[julia-url]: https://julialang.org/ + +This guideline for research and development is intended for ongoing SINDBAD-RnD projects. This will operate as a private fork shared within the core [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team) to foster an environment of maximized internal collaboration. Researchers and developers working on [the public SINDBAD repo](https://github.com/EarthyScience/SINDBAD) are encouraged to join the RnD-Team on a need basis. + +This setup ensures that members can freely exchange ideas, work closely on ongoing research, and develop new capabilities while safeguarding unpublished code from unauthorized public release. By maintaining this private and protected framework, SINDBAD-RnD aims to uphold both the integrity of collaborative efforts and the security of its scientific advancements. + +This repository will ONLY be accessible to the members of the [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team) + +### Governance Principles of SINDBAD-RnD + +1. **Purpose and Structure**: + - The governance structure of `SINDBAD` fosters collaboration, community building, and supports continuous research and development at BGI. + - It is designed to be simple and clear. + +2. **Repository Framework**: + - SINDBAD-RnD governance applies to members of the [SINDBAD-RnD repository](https://github.com/EarthyScience/SINDBAD-RnD). Upon the public release of SINDBAD, SINDBAD-RnD will be established as a fork of the main SINDBAD repository where internal development will be carried out. + + +3. **Function of SINDBAD-RnD**: + SINDBAD-RnD serves as a collaborative, protected space for advancing SINDBAD both technically and scientifically within [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team). *Expansion of [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team) beyond BGI members may be considered in the future but only agreed upon code will be released*. + +4. **SINDBAD-RnD-Team Guidelines**: + + Members of the SINDBAD-RnD group, forming the [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team), adhere to the following principles: + - Participation is voluntary, with a commitment to follow the guidelines. + - Members may privately fork the SINDBAD-RnD repository and when sharing it commit do so exclusively within the [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team). + - Research and development scopes must be transparently shared across the [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team). + - [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team) members must consult the [SINDBAD-RnD-Team](https://github.com/orgs/EarthyScience/teams/sindbad-rnd-team) before: + - Releasing code of their developments in SINDBAD-RnD. + - Collaborating on SINDBAD-related projects outside the team. + - Submitting research proposals leveraging SINDBAD-RnD, preferably including SINDBAD. + - All members adhere to the [Max Planck Society's guidelines for good scientific practice](https://www.mr.mpg.de/14263212/scientificpractice). + +5. **Note on the definition of collaboration**: Collaboration is nuanced. As a guideline, any activity beyond SINDBAD's FAQ, documentation, or workflows/examples qualifies as collaboration. \ No newline at end of file diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/NOTICE b/NOTICE.md similarity index 100% rename from NOTICE rename to NOTICE.md diff --git a/Project.toml b/Project.toml index d94d68016..d82d1f3de 100644 --- a/Project.toml +++ b/Project.toml @@ -1,39 +1,22 @@ name = "Sindbad" uuid = "6686e6de-2010-4bf8-9178-b2bcc470766e" -authors = ["SINDBAD Contributors "] version = "0.1.0" +authors = ["SINDBAD Contributors "] [deps] -Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -CodeTracking = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" -Crayons = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" -DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" -FieldMetadata = "bf96fef3-21d2-5d20-8afa-0e7d4c32a885" -Flatten = "4c728ea3-d9ee-5c9a-9642-b6f7d7dc04fa" -InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" -Missings = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -NaNStatistics = "b946abbf-3ea7-4610-9019-9858bfdeaf2d" -Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a" -Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -Reexport = "189a3867-3050-52da-a836-e630ba90ab69" -StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" -StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" - -[compat] -Accessors = "0.1.42" -Crayons = "4.1.1" -Dates = "1.10, 1.11.0" -NaNStatistics = "0.6.50" -Pkg = "1.10.0" -Reexport = "1.2.2" -TypedTables = "1.4.6" -julia = "1.10" - -[extras] -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" +SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" +SindbadML = "eb1d8004-2d42-4eef-b369-ed0645c101e8" +SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" +SindbadOptimization = "64fff8bd-0c13-402c-aa96-b97d0bc3655c" +SindbadSetup = "2b7f2987-8a1e-48b4-8a02-cc9e7c4eeb1c" +SindbadTEM = "f6108451-10cb-42fa-b0c1-67671cf08f15" -[targets] -test = ["Test"] +[sources] +SindbadCore = {path = "./SindbadCore"} +SindbadData = {path = "./SindbadData"} +SindbadMetrics = {path = "./SindbadMetrics"} +SindbadSetup = {path = "./SindbadSetup"} +SindbadTEM = {path = "./SindbadTEM"} +SindbadML = {path = "./SindbadML"} +SindbadOptimization = {path = "./SindbadOptimization"} \ No newline at end of file diff --git a/SindbadCore/LICENSE.md b/SindbadCore/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadCore/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/SindbadCore/NOTICE.md b/SindbadCore/NOTICE.md new file mode 100644 index 000000000..189d3d824 --- /dev/null +++ b/SindbadCore/NOTICE.md @@ -0,0 +1 @@ +Copyright: Copyright (C) 2025 Max-Planck-Gesellschaft zur Förderung der Wissenschaften; Licensed under the EUPL, with extension of article 5 (compatibility clause) to any licence for distributing derivative works that have been produced by the normal use of the Work as a library. \ No newline at end of file diff --git a/SindbadCore/Project.toml b/SindbadCore/Project.toml new file mode 100644 index 000000000..6caa97a95 --- /dev/null +++ b/SindbadCore/Project.toml @@ -0,0 +1,45 @@ +name = "SindbadCore" +uuid = "7e5cc002-9bc1-4508-860d-3c0816be375a" +version = "0.1.0" +authors = ["SINDBAD Contributors "] + +[deps] +Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +CodeTracking = "da1fd8a2-8d9e-5ec2-8556-3022fb5608a2" +Crayons = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +FIGlet = "3064a664-84fe-4d92-92c7-ed492f3d8fae" +FieldMetadata = "bf96fef3-21d2-5d20-8afa-0e7d4c32a885" +Flatten = "4c728ea3-d9ee-5c9a-9642-b6f7d7dc04fa" +InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" +Missings = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +NaNStatistics = "b946abbf-3ea7-4610-9019-9858bfdeaf2d" +Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a" +Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" +StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +StyledStrings = "f489334b-da3d-4c2e-b8f0-e476e12c162b" +TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + +[compat] +Accessors = "0.1.42" +Crayons = "4.1.1" +Dates = "1.10, 1.11.0" +FIGlet = "0.2.2" +Logging = "1.10.10, 1.11.0" +NaNStatistics = "0.6.50" +Pkg = "1.10.0" +Reexport = "1.2.2" +StyledStrings = "1.0.3, 1.11.0" +TypedTables = "1.4.6" +julia = "1.10" + +[extras] +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[targets] +test = ["Test"] diff --git a/src/Models/EVI/EVI.jl b/SindbadCore/src/Models/EVI/EVI.jl similarity index 100% rename from src/Models/EVI/EVI.jl rename to SindbadCore/src/Models/EVI/EVI.jl diff --git a/src/Models/EVI/EVI_constant.jl b/SindbadCore/src/Models/EVI/EVI_constant.jl similarity index 100% rename from src/Models/EVI/EVI_constant.jl rename to SindbadCore/src/Models/EVI/EVI_constant.jl diff --git a/src/Models/EVI/EVI_forcing.jl b/SindbadCore/src/Models/EVI/EVI_forcing.jl similarity index 100% rename from src/Models/EVI/EVI_forcing.jl rename to SindbadCore/src/Models/EVI/EVI_forcing.jl diff --git a/src/Models/LAI/LAI.jl b/SindbadCore/src/Models/LAI/LAI.jl similarity index 100% rename from src/Models/LAI/LAI.jl rename to SindbadCore/src/Models/LAI/LAI.jl diff --git a/src/Models/LAI/LAI_cVegLeaf.jl b/SindbadCore/src/Models/LAI/LAI_cVegLeaf.jl similarity index 100% rename from src/Models/LAI/LAI_cVegLeaf.jl rename to SindbadCore/src/Models/LAI/LAI_cVegLeaf.jl diff --git a/src/Models/LAI/LAI_constant.jl b/SindbadCore/src/Models/LAI/LAI_constant.jl similarity index 100% rename from src/Models/LAI/LAI_constant.jl rename to SindbadCore/src/Models/LAI/LAI_constant.jl diff --git a/src/Models/LAI/LAI_forcing.jl b/SindbadCore/src/Models/LAI/LAI_forcing.jl similarity index 100% rename from src/Models/LAI/LAI_forcing.jl rename to SindbadCore/src/Models/LAI/LAI_forcing.jl diff --git a/src/Models/Models.jl b/SindbadCore/src/Models/Models.jl similarity index 97% rename from src/Models/Models.jl rename to SindbadCore/src/Models/Models.jl index eac56ca06..f36a4a724 100644 --- a/src/Models/Models.jl +++ b/SindbadCore/src/Models/Models.jl @@ -1,10 +1,10 @@ """ - Sindbad.Models + SindbadCore.Models The core module for defining and implementing models and approaches of ecosystem processes in the SINDBAD framework. # Description -The `Sindbad.Models` module provides the infrastructure for defining and implementing terrestrial ecosystem models within the SINDBAD framework. It includes tools for model definition, parameter management, and method implementation. +The `SindbadCore.Models` module provides the infrastructure for defining and implementing terrestrial ecosystem models within the SINDBAD framework. It includes tools for model definition, parameter management, and method implementation. # Key Features - Model definition and inheritance from `LandEcosystem` @@ -29,7 +29,7 @@ All models must implement at least one of the following methods: # Usage ```julia -using Sindbad.Models +using SindbadCore.Models # Define a new model abstract type MyModel <: LandEcosystem end @@ -56,8 +56,8 @@ end module Models # Import & export necessary modules/functions - using ..Sindbad - import ..Sindbad.Types: purpose, LandEcosystem + using ..SindbadCore + import ..SindbadCore.Types: purpose, LandEcosystem using FieldMetadata: @metadata using Parameters: @with_kw @metadata timescale "" String @@ -111,7 +111,7 @@ module Models caller_info = string(stack[2]) # The second entry is the caller c_name = split(caller_info, "at ")[2] c_name = split(c_name, ".jl")[1] - c_type = getproperty(Sindbad.Models, Symbol(c_name)) + c_type = getproperty(SindbadCore.Models, Symbol(c_name)) return getModelDocString(c_type) else return ("Information of the caller file is not available.") @@ -383,6 +383,6 @@ module Models # now having this ordered list is independent from the step including the models into this `module`. include(joinpath(@__DIR__, "standardSindbadModels.jl")) - + include("runModels.jl") end diff --git a/src/Models/NDVI/NDVI.jl b/SindbadCore/src/Models/NDVI/NDVI.jl similarity index 100% rename from src/Models/NDVI/NDVI.jl rename to SindbadCore/src/Models/NDVI/NDVI.jl diff --git a/src/Models/NDVI/NDVI_constant.jl b/SindbadCore/src/Models/NDVI/NDVI_constant.jl similarity index 100% rename from src/Models/NDVI/NDVI_constant.jl rename to SindbadCore/src/Models/NDVI/NDVI_constant.jl diff --git a/src/Models/NDVI/NDVI_forcing.jl b/SindbadCore/src/Models/NDVI/NDVI_forcing.jl similarity index 100% rename from src/Models/NDVI/NDVI_forcing.jl rename to SindbadCore/src/Models/NDVI/NDVI_forcing.jl diff --git a/src/Models/NDWI/NDWI.jl b/SindbadCore/src/Models/NDWI/NDWI.jl similarity index 100% rename from src/Models/NDWI/NDWI.jl rename to SindbadCore/src/Models/NDWI/NDWI.jl diff --git a/src/Models/NDWI/NDWI_constant.jl b/SindbadCore/src/Models/NDWI/NDWI_constant.jl similarity index 100% rename from src/Models/NDWI/NDWI_constant.jl rename to SindbadCore/src/Models/NDWI/NDWI_constant.jl diff --git a/src/Models/NDWI/NDWI_forcing.jl b/SindbadCore/src/Models/NDWI/NDWI_forcing.jl similarity index 100% rename from src/Models/NDWI/NDWI_forcing.jl rename to SindbadCore/src/Models/NDWI/NDWI_forcing.jl diff --git a/src/Models/NIRv/NIRv.jl b/SindbadCore/src/Models/NIRv/NIRv.jl similarity index 100% rename from src/Models/NIRv/NIRv.jl rename to SindbadCore/src/Models/NIRv/NIRv.jl diff --git a/src/Models/NIRv/NIRv_constant.jl b/SindbadCore/src/Models/NIRv/NIRv_constant.jl similarity index 100% rename from src/Models/NIRv/NIRv_constant.jl rename to SindbadCore/src/Models/NIRv/NIRv_constant.jl diff --git a/src/Models/NIRv/NIRv_forcing.jl b/SindbadCore/src/Models/NIRv/NIRv_forcing.jl similarity index 100% rename from src/Models/NIRv/NIRv_forcing.jl rename to SindbadCore/src/Models/NIRv/NIRv_forcing.jl diff --git a/src/Models/PET/PET.jl b/SindbadCore/src/Models/PET/PET.jl similarity index 100% rename from src/Models/PET/PET.jl rename to SindbadCore/src/Models/PET/PET.jl diff --git a/src/Models/PET/PET_Lu2005.jl b/SindbadCore/src/Models/PET/PET_Lu2005.jl similarity index 100% rename from src/Models/PET/PET_Lu2005.jl rename to SindbadCore/src/Models/PET/PET_Lu2005.jl diff --git a/src/Models/PET/PET_PriestleyTaylor1972.jl b/SindbadCore/src/Models/PET/PET_PriestleyTaylor1972.jl similarity index 100% rename from src/Models/PET/PET_PriestleyTaylor1972.jl rename to SindbadCore/src/Models/PET/PET_PriestleyTaylor1972.jl diff --git a/src/Models/PET/PET_forcing.jl b/SindbadCore/src/Models/PET/PET_forcing.jl similarity index 100% rename from src/Models/PET/PET_forcing.jl rename to SindbadCore/src/Models/PET/PET_forcing.jl diff --git a/src/Models/PFT/PFT.jl b/SindbadCore/src/Models/PFT/PFT.jl similarity index 100% rename from src/Models/PFT/PFT.jl rename to SindbadCore/src/Models/PFT/PFT.jl diff --git a/src/Models/PFT/PFT_constant.jl b/SindbadCore/src/Models/PFT/PFT_constant.jl similarity index 100% rename from src/Models/PFT/PFT_constant.jl rename to SindbadCore/src/Models/PFT/PFT_constant.jl diff --git a/src/Models/WUE/WUE.jl b/SindbadCore/src/Models/WUE/WUE.jl similarity index 100% rename from src/Models/WUE/WUE.jl rename to SindbadCore/src/Models/WUE/WUE.jl diff --git a/src/Models/WUE/WUE_Medlyn2011.jl b/SindbadCore/src/Models/WUE/WUE_Medlyn2011.jl similarity index 100% rename from src/Models/WUE/WUE_Medlyn2011.jl rename to SindbadCore/src/Models/WUE/WUE_Medlyn2011.jl diff --git a/src/Models/WUE/WUE_VPDDay.jl b/SindbadCore/src/Models/WUE/WUE_VPDDay.jl similarity index 100% rename from src/Models/WUE/WUE_VPDDay.jl rename to SindbadCore/src/Models/WUE/WUE_VPDDay.jl diff --git a/src/Models/WUE/WUE_VPDDayCo2.jl b/SindbadCore/src/Models/WUE/WUE_VPDDayCo2.jl similarity index 100% rename from src/Models/WUE/WUE_VPDDayCo2.jl rename to SindbadCore/src/Models/WUE/WUE_VPDDayCo2.jl diff --git a/src/Models/WUE/WUE_constant.jl b/SindbadCore/src/Models/WUE/WUE_constant.jl similarity index 100% rename from src/Models/WUE/WUE_constant.jl rename to SindbadCore/src/Models/WUE/WUE_constant.jl diff --git a/src/Models/WUE/WUE_expVPDDayCo2.jl b/SindbadCore/src/Models/WUE/WUE_expVPDDayCo2.jl similarity index 100% rename from src/Models/WUE/WUE_expVPDDayCo2.jl rename to SindbadCore/src/Models/WUE/WUE_expVPDDayCo2.jl diff --git a/src/Models/ambientCO2/ambientCO2.jl b/SindbadCore/src/Models/ambientCO2/ambientCO2.jl similarity index 100% rename from src/Models/ambientCO2/ambientCO2.jl rename to SindbadCore/src/Models/ambientCO2/ambientCO2.jl diff --git a/src/Models/ambientCO2/ambientCO2_constant.jl b/SindbadCore/src/Models/ambientCO2/ambientCO2_constant.jl similarity index 100% rename from src/Models/ambientCO2/ambientCO2_constant.jl rename to SindbadCore/src/Models/ambientCO2/ambientCO2_constant.jl diff --git a/src/Models/ambientCO2/ambientCO2_forcing.jl b/SindbadCore/src/Models/ambientCO2/ambientCO2_forcing.jl similarity index 100% rename from src/Models/ambientCO2/ambientCO2_forcing.jl rename to SindbadCore/src/Models/ambientCO2/ambientCO2_forcing.jl diff --git a/src/Models/autoRespiration/autoRespiration.jl b/SindbadCore/src/Models/autoRespiration/autoRespiration.jl similarity index 100% rename from src/Models/autoRespiration/autoRespiration.jl rename to SindbadCore/src/Models/autoRespiration/autoRespiration.jl diff --git a/src/Models/autoRespiration/autoRespiration_Thornley2000A.jl b/SindbadCore/src/Models/autoRespiration/autoRespiration_Thornley2000A.jl similarity index 100% rename from src/Models/autoRespiration/autoRespiration_Thornley2000A.jl rename to SindbadCore/src/Models/autoRespiration/autoRespiration_Thornley2000A.jl diff --git a/src/Models/autoRespiration/autoRespiration_Thornley2000B.jl b/SindbadCore/src/Models/autoRespiration/autoRespiration_Thornley2000B.jl similarity index 100% rename from src/Models/autoRespiration/autoRespiration_Thornley2000B.jl rename to SindbadCore/src/Models/autoRespiration/autoRespiration_Thornley2000B.jl diff --git a/src/Models/autoRespiration/autoRespiration_Thornley2000C.jl b/SindbadCore/src/Models/autoRespiration/autoRespiration_Thornley2000C.jl similarity index 100% rename from src/Models/autoRespiration/autoRespiration_Thornley2000C.jl rename to SindbadCore/src/Models/autoRespiration/autoRespiration_Thornley2000C.jl diff --git a/src/Models/autoRespiration/autoRespiration_none.jl b/SindbadCore/src/Models/autoRespiration/autoRespiration_none.jl similarity index 100% rename from src/Models/autoRespiration/autoRespiration_none.jl rename to SindbadCore/src/Models/autoRespiration/autoRespiration_none.jl diff --git a/src/Models/autoRespirationAirT/autoRespirationAirT.jl b/SindbadCore/src/Models/autoRespirationAirT/autoRespirationAirT.jl similarity index 100% rename from src/Models/autoRespirationAirT/autoRespirationAirT.jl rename to SindbadCore/src/Models/autoRespirationAirT/autoRespirationAirT.jl diff --git a/src/Models/autoRespirationAirT/autoRespirationAirT_Q10.jl b/SindbadCore/src/Models/autoRespirationAirT/autoRespirationAirT_Q10.jl similarity index 100% rename from src/Models/autoRespirationAirT/autoRespirationAirT_Q10.jl rename to SindbadCore/src/Models/autoRespirationAirT/autoRespirationAirT_Q10.jl diff --git a/src/Models/autoRespirationAirT/autoRespirationAirT_none.jl b/SindbadCore/src/Models/autoRespirationAirT/autoRespirationAirT_none.jl similarity index 100% rename from src/Models/autoRespirationAirT/autoRespirationAirT_none.jl rename to SindbadCore/src/Models/autoRespirationAirT/autoRespirationAirT_none.jl diff --git a/src/Models/cAllocation/cAllocation.jl b/SindbadCore/src/Models/cAllocation/cAllocation.jl similarity index 100% rename from src/Models/cAllocation/cAllocation.jl rename to SindbadCore/src/Models/cAllocation/cAllocation.jl diff --git a/src/Models/cAllocation/cAllocation_Friedlingstein1999.jl b/SindbadCore/src/Models/cAllocation/cAllocation_Friedlingstein1999.jl similarity index 100% rename from src/Models/cAllocation/cAllocation_Friedlingstein1999.jl rename to SindbadCore/src/Models/cAllocation/cAllocation_Friedlingstein1999.jl diff --git a/src/Models/cAllocation/cAllocation_GSI.jl b/SindbadCore/src/Models/cAllocation/cAllocation_GSI.jl similarity index 100% rename from src/Models/cAllocation/cAllocation_GSI.jl rename to SindbadCore/src/Models/cAllocation/cAllocation_GSI.jl diff --git a/src/Models/cAllocation/cAllocation_fixed.jl b/SindbadCore/src/Models/cAllocation/cAllocation_fixed.jl similarity index 100% rename from src/Models/cAllocation/cAllocation_fixed.jl rename to SindbadCore/src/Models/cAllocation/cAllocation_fixed.jl diff --git a/src/Models/cAllocation/cAllocation_none.jl b/SindbadCore/src/Models/cAllocation/cAllocation_none.jl similarity index 100% rename from src/Models/cAllocation/cAllocation_none.jl rename to SindbadCore/src/Models/cAllocation/cAllocation_none.jl diff --git a/src/Models/cAllocationLAI/cAllocationLAI.jl b/SindbadCore/src/Models/cAllocationLAI/cAllocationLAI.jl similarity index 100% rename from src/Models/cAllocationLAI/cAllocationLAI.jl rename to SindbadCore/src/Models/cAllocationLAI/cAllocationLAI.jl diff --git a/src/Models/cAllocationLAI/cAllocationLAI_Friedlingstein1999.jl b/SindbadCore/src/Models/cAllocationLAI/cAllocationLAI_Friedlingstein1999.jl similarity index 100% rename from src/Models/cAllocationLAI/cAllocationLAI_Friedlingstein1999.jl rename to SindbadCore/src/Models/cAllocationLAI/cAllocationLAI_Friedlingstein1999.jl diff --git a/src/Models/cAllocationLAI/cAllocationLAI_none.jl b/SindbadCore/src/Models/cAllocationLAI/cAllocationLAI_none.jl similarity index 100% rename from src/Models/cAllocationLAI/cAllocationLAI_none.jl rename to SindbadCore/src/Models/cAllocationLAI/cAllocationLAI_none.jl diff --git a/src/Models/cAllocationNutrients/cAllocationNutrients.jl b/SindbadCore/src/Models/cAllocationNutrients/cAllocationNutrients.jl similarity index 100% rename from src/Models/cAllocationNutrients/cAllocationNutrients.jl rename to SindbadCore/src/Models/cAllocationNutrients/cAllocationNutrients.jl diff --git a/src/Models/cAllocationNutrients/cAllocationNutrients_Friedlingstein1999.jl b/SindbadCore/src/Models/cAllocationNutrients/cAllocationNutrients_Friedlingstein1999.jl similarity index 100% rename from src/Models/cAllocationNutrients/cAllocationNutrients_Friedlingstein1999.jl rename to SindbadCore/src/Models/cAllocationNutrients/cAllocationNutrients_Friedlingstein1999.jl diff --git a/src/Models/cAllocationNutrients/cAllocationNutrients_none.jl b/SindbadCore/src/Models/cAllocationNutrients/cAllocationNutrients_none.jl similarity index 100% rename from src/Models/cAllocationNutrients/cAllocationNutrients_none.jl rename to SindbadCore/src/Models/cAllocationNutrients/cAllocationNutrients_none.jl diff --git a/src/Models/cAllocationRadiation/cAllocationRadiation.jl b/SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation.jl similarity index 100% rename from src/Models/cAllocationRadiation/cAllocationRadiation.jl rename to SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation.jl diff --git a/src/Models/cAllocationRadiation/cAllocationRadiation_GSI.jl b/SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation_GSI.jl similarity index 100% rename from src/Models/cAllocationRadiation/cAllocationRadiation_GSI.jl rename to SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation_GSI.jl diff --git a/src/Models/cAllocationRadiation/cAllocationRadiation_RgPot.jl b/SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation_RgPot.jl similarity index 100% rename from src/Models/cAllocationRadiation/cAllocationRadiation_RgPot.jl rename to SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation_RgPot.jl diff --git a/src/Models/cAllocationRadiation/cAllocationRadiation_gpp.jl b/SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation_gpp.jl similarity index 100% rename from src/Models/cAllocationRadiation/cAllocationRadiation_gpp.jl rename to SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation_gpp.jl diff --git a/src/Models/cAllocationRadiation/cAllocationRadiation_none.jl b/SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation_none.jl similarity index 100% rename from src/Models/cAllocationRadiation/cAllocationRadiation_none.jl rename to SindbadCore/src/Models/cAllocationRadiation/cAllocationRadiation_none.jl diff --git a/src/Models/cAllocationSoilT/cAllocationSoilT.jl b/SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT.jl similarity index 100% rename from src/Models/cAllocationSoilT/cAllocationSoilT.jl rename to SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT.jl diff --git a/src/Models/cAllocationSoilT/cAllocationSoilT_Friedlingstein1999.jl b/SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT_Friedlingstein1999.jl similarity index 100% rename from src/Models/cAllocationSoilT/cAllocationSoilT_Friedlingstein1999.jl rename to SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT_Friedlingstein1999.jl diff --git a/src/Models/cAllocationSoilT/cAllocationSoilT_gpp.jl b/SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT_gpp.jl similarity index 100% rename from src/Models/cAllocationSoilT/cAllocationSoilT_gpp.jl rename to SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT_gpp.jl diff --git a/src/Models/cAllocationSoilT/cAllocationSoilT_gppGSI.jl b/SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT_gppGSI.jl similarity index 100% rename from src/Models/cAllocationSoilT/cAllocationSoilT_gppGSI.jl rename to SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT_gppGSI.jl diff --git a/src/Models/cAllocationSoilT/cAllocationSoilT_none.jl b/SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT_none.jl similarity index 100% rename from src/Models/cAllocationSoilT/cAllocationSoilT_none.jl rename to SindbadCore/src/Models/cAllocationSoilT/cAllocationSoilT_none.jl diff --git a/src/Models/cAllocationSoilW/cAllocationSoilW.jl b/SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW.jl similarity index 100% rename from src/Models/cAllocationSoilW/cAllocationSoilW.jl rename to SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW.jl diff --git a/src/Models/cAllocationSoilW/cAllocationSoilW_Friedlingstein1999.jl b/SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW_Friedlingstein1999.jl similarity index 100% rename from src/Models/cAllocationSoilW/cAllocationSoilW_Friedlingstein1999.jl rename to SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW_Friedlingstein1999.jl diff --git a/src/Models/cAllocationSoilW/cAllocationSoilW_gpp.jl b/SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW_gpp.jl similarity index 100% rename from src/Models/cAllocationSoilW/cAllocationSoilW_gpp.jl rename to SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW_gpp.jl diff --git a/src/Models/cAllocationSoilW/cAllocationSoilW_gppGSI.jl b/SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW_gppGSI.jl similarity index 100% rename from src/Models/cAllocationSoilW/cAllocationSoilW_gppGSI.jl rename to SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW_gppGSI.jl diff --git a/src/Models/cAllocationSoilW/cAllocationSoilW_none.jl b/SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW_none.jl similarity index 100% rename from src/Models/cAllocationSoilW/cAllocationSoilW_none.jl rename to SindbadCore/src/Models/cAllocationSoilW/cAllocationSoilW_none.jl diff --git a/src/Models/cAllocationTreeFraction/cAllocationTreeFraction.jl b/SindbadCore/src/Models/cAllocationTreeFraction/cAllocationTreeFraction.jl similarity index 100% rename from src/Models/cAllocationTreeFraction/cAllocationTreeFraction.jl rename to SindbadCore/src/Models/cAllocationTreeFraction/cAllocationTreeFraction.jl diff --git a/src/Models/cAllocationTreeFraction/cAllocationTreeFraction_Friedlingstein1999.jl b/SindbadCore/src/Models/cAllocationTreeFraction/cAllocationTreeFraction_Friedlingstein1999.jl similarity index 100% rename from src/Models/cAllocationTreeFraction/cAllocationTreeFraction_Friedlingstein1999.jl rename to SindbadCore/src/Models/cAllocationTreeFraction/cAllocationTreeFraction_Friedlingstein1999.jl diff --git a/src/Models/cBiomass/cBiomass.jl b/SindbadCore/src/Models/cBiomass/cBiomass.jl similarity index 100% rename from src/Models/cBiomass/cBiomass.jl rename to SindbadCore/src/Models/cBiomass/cBiomass.jl diff --git a/src/Models/cBiomass/cBiomass_simple.jl b/SindbadCore/src/Models/cBiomass/cBiomass_simple.jl similarity index 100% rename from src/Models/cBiomass/cBiomass_simple.jl rename to SindbadCore/src/Models/cBiomass/cBiomass_simple.jl diff --git a/src/Models/cBiomass/cBiomass_treeGrass.jl b/SindbadCore/src/Models/cBiomass/cBiomass_treeGrass.jl similarity index 100% rename from src/Models/cBiomass/cBiomass_treeGrass.jl rename to SindbadCore/src/Models/cBiomass/cBiomass_treeGrass.jl diff --git a/src/Models/cBiomass/cBiomass_treeGrass_cVegReserveScaling.jl b/SindbadCore/src/Models/cBiomass/cBiomass_treeGrass_cVegReserveScaling.jl similarity index 100% rename from src/Models/cBiomass/cBiomass_treeGrass_cVegReserveScaling.jl rename to SindbadCore/src/Models/cBiomass/cBiomass_treeGrass_cVegReserveScaling.jl diff --git a/src/Models/cCycle/cCycle.jl b/SindbadCore/src/Models/cCycle/cCycle.jl similarity index 100% rename from src/Models/cCycle/cCycle.jl rename to SindbadCore/src/Models/cCycle/cCycle.jl diff --git a/src/Models/cCycle/cCycle_CASA.jl b/SindbadCore/src/Models/cCycle/cCycle_CASA.jl similarity index 100% rename from src/Models/cCycle/cCycle_CASA.jl rename to SindbadCore/src/Models/cCycle/cCycle_CASA.jl diff --git a/src/Models/cCycle/cCycle_GSI.jl b/SindbadCore/src/Models/cCycle/cCycle_GSI.jl similarity index 100% rename from src/Models/cCycle/cCycle_GSI.jl rename to SindbadCore/src/Models/cCycle/cCycle_GSI.jl diff --git a/src/Models/cCycle/cCycle_simple.jl b/SindbadCore/src/Models/cCycle/cCycle_simple.jl similarity index 100% rename from src/Models/cCycle/cCycle_simple.jl rename to SindbadCore/src/Models/cCycle/cCycle_simple.jl diff --git a/src/Models/cCycleBase/cCycleBase.jl b/SindbadCore/src/Models/cCycleBase/cCycleBase.jl similarity index 100% rename from src/Models/cCycleBase/cCycleBase.jl rename to SindbadCore/src/Models/cCycleBase/cCycleBase.jl diff --git a/src/Models/cCycleBase/cCycleBase_CASA.jl b/SindbadCore/src/Models/cCycleBase/cCycleBase_CASA.jl similarity index 100% rename from src/Models/cCycleBase/cCycleBase_CASA.jl rename to SindbadCore/src/Models/cCycleBase/cCycleBase_CASA.jl diff --git a/src/Models/cCycleBase/cCycleBase_GSI.jl b/SindbadCore/src/Models/cCycleBase/cCycleBase_GSI.jl similarity index 100% rename from src/Models/cCycleBase/cCycleBase_GSI.jl rename to SindbadCore/src/Models/cCycleBase/cCycleBase_GSI.jl diff --git a/src/Models/cCycleBase/cCycleBase_GSI_PlantForm.jl b/SindbadCore/src/Models/cCycleBase/cCycleBase_GSI_PlantForm.jl similarity index 100% rename from src/Models/cCycleBase/cCycleBase_GSI_PlantForm.jl rename to SindbadCore/src/Models/cCycleBase/cCycleBase_GSI_PlantForm.jl diff --git a/src/Models/cCycleBase/cCycleBase_GSI_PlantForm_LargeKReserve.jl b/SindbadCore/src/Models/cCycleBase/cCycleBase_GSI_PlantForm_LargeKReserve.jl similarity index 100% rename from src/Models/cCycleBase/cCycleBase_GSI_PlantForm_LargeKReserve.jl rename to SindbadCore/src/Models/cCycleBase/cCycleBase_GSI_PlantForm_LargeKReserve.jl diff --git a/src/Models/cCycleBase/cCycleBase_simple.jl b/SindbadCore/src/Models/cCycleBase/cCycleBase_simple.jl similarity index 100% rename from src/Models/cCycleBase/cCycleBase_simple.jl rename to SindbadCore/src/Models/cCycleBase/cCycleBase_simple.jl diff --git a/src/Models/cCycleConsistency/cCycleConsistency.jl b/SindbadCore/src/Models/cCycleConsistency/cCycleConsistency.jl similarity index 100% rename from src/Models/cCycleConsistency/cCycleConsistency.jl rename to SindbadCore/src/Models/cCycleConsistency/cCycleConsistency.jl diff --git a/src/Models/cCycleConsistency/cCycleConsistency_simple.jl b/SindbadCore/src/Models/cCycleConsistency/cCycleConsistency_simple.jl similarity index 98% rename from src/Models/cCycleConsistency/cCycleConsistency_simple.jl rename to SindbadCore/src/Models/cCycleConsistency/cCycleConsistency_simple.jl index 68785b7da..4dde5d537 100644 --- a/src/Models/cCycleConsistency/cCycleConsistency_simple.jl +++ b/SindbadCore/src/Models/cCycleConsistency/cCycleConsistency_simple.jl @@ -38,8 +38,8 @@ display and error msg and stop when there is inconsistency """ function throwError(land, msg) tcPrint(land) - if hasproperty(Sindbad, :error_catcher) - push!(Sindbad.error_catcher, land) + if hasproperty(SindbadCore, :error_catcher) + push!(SindbadCore.error_catcher, land) end error(msg) end diff --git a/src/Models/cCycleDisturbance/cCycleDisturbance.jl b/SindbadCore/src/Models/cCycleDisturbance/cCycleDisturbance.jl similarity index 100% rename from src/Models/cCycleDisturbance/cCycleDisturbance.jl rename to SindbadCore/src/Models/cCycleDisturbance/cCycleDisturbance.jl diff --git a/src/Models/cCycleDisturbance/cCycleDisturbance_WROASTED.jl b/SindbadCore/src/Models/cCycleDisturbance/cCycleDisturbance_WROASTED.jl similarity index 100% rename from src/Models/cCycleDisturbance/cCycleDisturbance_WROASTED.jl rename to SindbadCore/src/Models/cCycleDisturbance/cCycleDisturbance_WROASTED.jl diff --git a/src/Models/cCycleDisturbance/cCycleDisturbance_cFlow.jl b/SindbadCore/src/Models/cCycleDisturbance/cCycleDisturbance_cFlow.jl similarity index 100% rename from src/Models/cCycleDisturbance/cCycleDisturbance_cFlow.jl rename to SindbadCore/src/Models/cCycleDisturbance/cCycleDisturbance_cFlow.jl diff --git a/src/Models/cFlow/cFlow.jl b/SindbadCore/src/Models/cFlow/cFlow.jl similarity index 100% rename from src/Models/cFlow/cFlow.jl rename to SindbadCore/src/Models/cFlow/cFlow.jl diff --git a/src/Models/cFlow/cFlow_CASA.jl b/SindbadCore/src/Models/cFlow/cFlow_CASA.jl similarity index 100% rename from src/Models/cFlow/cFlow_CASA.jl rename to SindbadCore/src/Models/cFlow/cFlow_CASA.jl diff --git a/src/Models/cFlow/cFlow_GSI.jl b/SindbadCore/src/Models/cFlow/cFlow_GSI.jl similarity index 100% rename from src/Models/cFlow/cFlow_GSI.jl rename to SindbadCore/src/Models/cFlow/cFlow_GSI.jl diff --git a/src/Models/cFlow/cFlow_none.jl b/SindbadCore/src/Models/cFlow/cFlow_none.jl similarity index 100% rename from src/Models/cFlow/cFlow_none.jl rename to SindbadCore/src/Models/cFlow/cFlow_none.jl diff --git a/src/Models/cFlow/cFlow_simple.jl b/SindbadCore/src/Models/cFlow/cFlow_simple.jl similarity index 100% rename from src/Models/cFlow/cFlow_simple.jl rename to SindbadCore/src/Models/cFlow/cFlow_simple.jl diff --git a/src/Models/cFlowSoilProperties/cFlowSoilProperties.jl b/SindbadCore/src/Models/cFlowSoilProperties/cFlowSoilProperties.jl similarity index 100% rename from src/Models/cFlowSoilProperties/cFlowSoilProperties.jl rename to SindbadCore/src/Models/cFlowSoilProperties/cFlowSoilProperties.jl diff --git a/src/Models/cFlowSoilProperties/cFlowSoilProperties_CASA.jl b/SindbadCore/src/Models/cFlowSoilProperties/cFlowSoilProperties_CASA.jl similarity index 100% rename from src/Models/cFlowSoilProperties/cFlowSoilProperties_CASA.jl rename to SindbadCore/src/Models/cFlowSoilProperties/cFlowSoilProperties_CASA.jl diff --git a/src/Models/cFlowSoilProperties/cFlowSoilProperties_none.jl b/SindbadCore/src/Models/cFlowSoilProperties/cFlowSoilProperties_none.jl similarity index 100% rename from src/Models/cFlowSoilProperties/cFlowSoilProperties_none.jl rename to SindbadCore/src/Models/cFlowSoilProperties/cFlowSoilProperties_none.jl diff --git a/src/Models/cFlowVegProperties/cFlowVegProperties.jl b/SindbadCore/src/Models/cFlowVegProperties/cFlowVegProperties.jl similarity index 100% rename from src/Models/cFlowVegProperties/cFlowVegProperties.jl rename to SindbadCore/src/Models/cFlowVegProperties/cFlowVegProperties.jl diff --git a/src/Models/cFlowVegProperties/cFlowVegProperties_CASA.jl b/SindbadCore/src/Models/cFlowVegProperties/cFlowVegProperties_CASA.jl similarity index 100% rename from src/Models/cFlowVegProperties/cFlowVegProperties_CASA.jl rename to SindbadCore/src/Models/cFlowVegProperties/cFlowVegProperties_CASA.jl diff --git a/src/Models/cFlowVegProperties/cFlowVegProperties_none.jl b/SindbadCore/src/Models/cFlowVegProperties/cFlowVegProperties_none.jl similarity index 100% rename from src/Models/cFlowVegProperties/cFlowVegProperties_none.jl rename to SindbadCore/src/Models/cFlowVegProperties/cFlowVegProperties_none.jl diff --git a/src/Models/cTau/cTau.jl b/SindbadCore/src/Models/cTau/cTau.jl similarity index 100% rename from src/Models/cTau/cTau.jl rename to SindbadCore/src/Models/cTau/cTau.jl diff --git a/src/Models/cTau/cTau_mult.jl b/SindbadCore/src/Models/cTau/cTau_mult.jl similarity index 100% rename from src/Models/cTau/cTau_mult.jl rename to SindbadCore/src/Models/cTau/cTau_mult.jl diff --git a/src/Models/cTau/cTau_none.jl b/SindbadCore/src/Models/cTau/cTau_none.jl similarity index 100% rename from src/Models/cTau/cTau_none.jl rename to SindbadCore/src/Models/cTau/cTau_none.jl diff --git a/src/Models/cTauLAI/cTauLAI.jl b/SindbadCore/src/Models/cTauLAI/cTauLAI.jl similarity index 100% rename from src/Models/cTauLAI/cTauLAI.jl rename to SindbadCore/src/Models/cTauLAI/cTauLAI.jl diff --git a/src/Models/cTauLAI/cTauLAI_CASA.jl b/SindbadCore/src/Models/cTauLAI/cTauLAI_CASA.jl similarity index 100% rename from src/Models/cTauLAI/cTauLAI_CASA.jl rename to SindbadCore/src/Models/cTauLAI/cTauLAI_CASA.jl diff --git a/src/Models/cTauLAI/cTauLAI_none.jl b/SindbadCore/src/Models/cTauLAI/cTauLAI_none.jl similarity index 100% rename from src/Models/cTauLAI/cTauLAI_none.jl rename to SindbadCore/src/Models/cTauLAI/cTauLAI_none.jl diff --git a/src/Models/cTauSoilProperties/cTauSoilProperties.jl b/SindbadCore/src/Models/cTauSoilProperties/cTauSoilProperties.jl similarity index 100% rename from src/Models/cTauSoilProperties/cTauSoilProperties.jl rename to SindbadCore/src/Models/cTauSoilProperties/cTauSoilProperties.jl diff --git a/src/Models/cTauSoilProperties/cTauSoilProperties_CASA.jl b/SindbadCore/src/Models/cTauSoilProperties/cTauSoilProperties_CASA.jl similarity index 100% rename from src/Models/cTauSoilProperties/cTauSoilProperties_CASA.jl rename to SindbadCore/src/Models/cTauSoilProperties/cTauSoilProperties_CASA.jl diff --git a/src/Models/cTauSoilProperties/cTauSoilProperties_none.jl b/SindbadCore/src/Models/cTauSoilProperties/cTauSoilProperties_none.jl similarity index 100% rename from src/Models/cTauSoilProperties/cTauSoilProperties_none.jl rename to SindbadCore/src/Models/cTauSoilProperties/cTauSoilProperties_none.jl diff --git a/src/Models/cTauSoilT/cTauSoilT.jl b/SindbadCore/src/Models/cTauSoilT/cTauSoilT.jl similarity index 100% rename from src/Models/cTauSoilT/cTauSoilT.jl rename to SindbadCore/src/Models/cTauSoilT/cTauSoilT.jl diff --git a/src/Models/cTauSoilT/cTauSoilT_Q10.jl b/SindbadCore/src/Models/cTauSoilT/cTauSoilT_Q10.jl similarity index 100% rename from src/Models/cTauSoilT/cTauSoilT_Q10.jl rename to SindbadCore/src/Models/cTauSoilT/cTauSoilT_Q10.jl diff --git a/src/Models/cTauSoilT/cTauSoilT_none.jl b/SindbadCore/src/Models/cTauSoilT/cTauSoilT_none.jl similarity index 100% rename from src/Models/cTauSoilT/cTauSoilT_none.jl rename to SindbadCore/src/Models/cTauSoilT/cTauSoilT_none.jl diff --git a/src/Models/cTauSoilW/cTauSoilW.jl b/SindbadCore/src/Models/cTauSoilW/cTauSoilW.jl similarity index 100% rename from src/Models/cTauSoilW/cTauSoilW.jl rename to SindbadCore/src/Models/cTauSoilW/cTauSoilW.jl diff --git a/src/Models/cTauSoilW/cTauSoilW_CASA.jl b/SindbadCore/src/Models/cTauSoilW/cTauSoilW_CASA.jl similarity index 100% rename from src/Models/cTauSoilW/cTauSoilW_CASA.jl rename to SindbadCore/src/Models/cTauSoilW/cTauSoilW_CASA.jl diff --git a/src/Models/cTauSoilW/cTauSoilW_GSI.jl b/SindbadCore/src/Models/cTauSoilW/cTauSoilW_GSI.jl similarity index 100% rename from src/Models/cTauSoilW/cTauSoilW_GSI.jl rename to SindbadCore/src/Models/cTauSoilW/cTauSoilW_GSI.jl diff --git a/src/Models/cTauSoilW/cTauSoilW_none.jl b/SindbadCore/src/Models/cTauSoilW/cTauSoilW_none.jl similarity index 100% rename from src/Models/cTauSoilW/cTauSoilW_none.jl rename to SindbadCore/src/Models/cTauSoilW/cTauSoilW_none.jl diff --git a/src/Models/cTauVegProperties/cTauVegProperties.jl b/SindbadCore/src/Models/cTauVegProperties/cTauVegProperties.jl similarity index 100% rename from src/Models/cTauVegProperties/cTauVegProperties.jl rename to SindbadCore/src/Models/cTauVegProperties/cTauVegProperties.jl diff --git a/src/Models/cTauVegProperties/cTauVegProperties_CASA.jl b/SindbadCore/src/Models/cTauVegProperties/cTauVegProperties_CASA.jl similarity index 100% rename from src/Models/cTauVegProperties/cTauVegProperties_CASA.jl rename to SindbadCore/src/Models/cTauVegProperties/cTauVegProperties_CASA.jl diff --git a/src/Models/cTauVegProperties/cTauVegProperties_none.jl b/SindbadCore/src/Models/cTauVegProperties/cTauVegProperties_none.jl similarity index 100% rename from src/Models/cTauVegProperties/cTauVegProperties_none.jl rename to SindbadCore/src/Models/cTauVegProperties/cTauVegProperties_none.jl diff --git a/src/Models/cVegetationDieOff/cVegetationDieOff.jl b/SindbadCore/src/Models/cVegetationDieOff/cVegetationDieOff.jl similarity index 100% rename from src/Models/cVegetationDieOff/cVegetationDieOff.jl rename to SindbadCore/src/Models/cVegetationDieOff/cVegetationDieOff.jl diff --git a/src/Models/cVegetationDieOff/cVegetationDieOff_forcing.jl b/SindbadCore/src/Models/cVegetationDieOff/cVegetationDieOff_forcing.jl similarity index 100% rename from src/Models/cVegetationDieOff/cVegetationDieOff_forcing.jl rename to SindbadCore/src/Models/cVegetationDieOff/cVegetationDieOff_forcing.jl diff --git a/src/Models/capillaryFlow/capillaryFlow.jl b/SindbadCore/src/Models/capillaryFlow/capillaryFlow.jl similarity index 100% rename from src/Models/capillaryFlow/capillaryFlow.jl rename to SindbadCore/src/Models/capillaryFlow/capillaryFlow.jl diff --git a/src/Models/capillaryFlow/capillaryFlow_VanDijk2010.jl b/SindbadCore/src/Models/capillaryFlow/capillaryFlow_VanDijk2010.jl similarity index 100% rename from src/Models/capillaryFlow/capillaryFlow_VanDijk2010.jl rename to SindbadCore/src/Models/capillaryFlow/capillaryFlow_VanDijk2010.jl diff --git a/src/Models/constants/constants.jl b/SindbadCore/src/Models/constants/constants.jl similarity index 100% rename from src/Models/constants/constants.jl rename to SindbadCore/src/Models/constants/constants.jl diff --git a/src/Models/constants/constants_numbers.jl b/SindbadCore/src/Models/constants/constants_numbers.jl similarity index 100% rename from src/Models/constants/constants_numbers.jl rename to SindbadCore/src/Models/constants/constants_numbers.jl diff --git a/src/Models/deriveVariables/deriveVariables.jl b/SindbadCore/src/Models/deriveVariables/deriveVariables.jl similarity index 100% rename from src/Models/deriveVariables/deriveVariables.jl rename to SindbadCore/src/Models/deriveVariables/deriveVariables.jl diff --git a/src/Models/deriveVariables/deriveVariables_simple.jl b/SindbadCore/src/Models/deriveVariables/deriveVariables_simple.jl similarity index 100% rename from src/Models/deriveVariables/deriveVariables_simple.jl rename to SindbadCore/src/Models/deriveVariables/deriveVariables_simple.jl diff --git a/src/Models/drainage/drainage.jl b/SindbadCore/src/Models/drainage/drainage.jl similarity index 100% rename from src/Models/drainage/drainage.jl rename to SindbadCore/src/Models/drainage/drainage.jl diff --git a/src/Models/drainage/drainage_dos.jl b/SindbadCore/src/Models/drainage/drainage_dos.jl similarity index 100% rename from src/Models/drainage/drainage_dos.jl rename to SindbadCore/src/Models/drainage/drainage_dos.jl diff --git a/src/Models/drainage/drainage_kUnsat.jl b/SindbadCore/src/Models/drainage/drainage_kUnsat.jl similarity index 100% rename from src/Models/drainage/drainage_kUnsat.jl rename to SindbadCore/src/Models/drainage/drainage_kUnsat.jl diff --git a/src/Models/drainage/drainage_wFC.jl b/SindbadCore/src/Models/drainage/drainage_wFC.jl similarity index 100% rename from src/Models/drainage/drainage_wFC.jl rename to SindbadCore/src/Models/drainage/drainage_wFC.jl diff --git a/src/Models/evaporation/evaporation.jl b/SindbadCore/src/Models/evaporation/evaporation.jl similarity index 100% rename from src/Models/evaporation/evaporation.jl rename to SindbadCore/src/Models/evaporation/evaporation.jl diff --git a/src/Models/evaporation/evaporation_Snyder2000.jl b/SindbadCore/src/Models/evaporation/evaporation_Snyder2000.jl similarity index 100% rename from src/Models/evaporation/evaporation_Snyder2000.jl rename to SindbadCore/src/Models/evaporation/evaporation_Snyder2000.jl diff --git a/src/Models/evaporation/evaporation_bareFraction.jl b/SindbadCore/src/Models/evaporation/evaporation_bareFraction.jl similarity index 100% rename from src/Models/evaporation/evaporation_bareFraction.jl rename to SindbadCore/src/Models/evaporation/evaporation_bareFraction.jl diff --git a/src/Models/evaporation/evaporation_demandSupply.jl b/SindbadCore/src/Models/evaporation/evaporation_demandSupply.jl similarity index 100% rename from src/Models/evaporation/evaporation_demandSupply.jl rename to SindbadCore/src/Models/evaporation/evaporation_demandSupply.jl diff --git a/src/Models/evaporation/evaporation_fAPAR.jl b/SindbadCore/src/Models/evaporation/evaporation_fAPAR.jl similarity index 100% rename from src/Models/evaporation/evaporation_fAPAR.jl rename to SindbadCore/src/Models/evaporation/evaporation_fAPAR.jl diff --git a/src/Models/evaporation/evaporation_none.jl b/SindbadCore/src/Models/evaporation/evaporation_none.jl similarity index 100% rename from src/Models/evaporation/evaporation_none.jl rename to SindbadCore/src/Models/evaporation/evaporation_none.jl diff --git a/src/Models/evaporation/evaporation_vegFraction.jl b/SindbadCore/src/Models/evaporation/evaporation_vegFraction.jl similarity index 100% rename from src/Models/evaporation/evaporation_vegFraction.jl rename to SindbadCore/src/Models/evaporation/evaporation_vegFraction.jl diff --git a/src/Models/evapotranspiration/evapotranspiration.jl b/SindbadCore/src/Models/evapotranspiration/evapotranspiration.jl similarity index 100% rename from src/Models/evapotranspiration/evapotranspiration.jl rename to SindbadCore/src/Models/evapotranspiration/evapotranspiration.jl diff --git a/src/Models/evapotranspiration/evapotranspiration_sum.jl b/SindbadCore/src/Models/evapotranspiration/evapotranspiration_sum.jl similarity index 100% rename from src/Models/evapotranspiration/evapotranspiration_sum.jl rename to SindbadCore/src/Models/evapotranspiration/evapotranspiration_sum.jl diff --git a/src/Models/fAPAR/fAPAR.jl b/SindbadCore/src/Models/fAPAR/fAPAR.jl similarity index 100% rename from src/Models/fAPAR/fAPAR.jl rename to SindbadCore/src/Models/fAPAR/fAPAR.jl diff --git a/src/Models/fAPAR/fAPAR_EVI.jl b/SindbadCore/src/Models/fAPAR/fAPAR_EVI.jl similarity index 100% rename from src/Models/fAPAR/fAPAR_EVI.jl rename to SindbadCore/src/Models/fAPAR/fAPAR_EVI.jl diff --git a/src/Models/fAPAR/fAPAR_LAI.jl b/SindbadCore/src/Models/fAPAR/fAPAR_LAI.jl similarity index 100% rename from src/Models/fAPAR/fAPAR_LAI.jl rename to SindbadCore/src/Models/fAPAR/fAPAR_LAI.jl diff --git a/src/Models/fAPAR/fAPAR_cVegLeaf.jl b/SindbadCore/src/Models/fAPAR/fAPAR_cVegLeaf.jl similarity index 100% rename from src/Models/fAPAR/fAPAR_cVegLeaf.jl rename to SindbadCore/src/Models/fAPAR/fAPAR_cVegLeaf.jl diff --git a/src/Models/fAPAR/fAPAR_cVegLeafBareFrac.jl b/SindbadCore/src/Models/fAPAR/fAPAR_cVegLeafBareFrac.jl similarity index 100% rename from src/Models/fAPAR/fAPAR_cVegLeafBareFrac.jl rename to SindbadCore/src/Models/fAPAR/fAPAR_cVegLeafBareFrac.jl diff --git a/src/Models/fAPAR/fAPAR_constant.jl b/SindbadCore/src/Models/fAPAR/fAPAR_constant.jl similarity index 100% rename from src/Models/fAPAR/fAPAR_constant.jl rename to SindbadCore/src/Models/fAPAR/fAPAR_constant.jl diff --git a/src/Models/fAPAR/fAPAR_forcing.jl b/SindbadCore/src/Models/fAPAR/fAPAR_forcing.jl similarity index 100% rename from src/Models/fAPAR/fAPAR_forcing.jl rename to SindbadCore/src/Models/fAPAR/fAPAR_forcing.jl diff --git a/src/Models/fAPAR/fAPAR_vegFraction.jl b/SindbadCore/src/Models/fAPAR/fAPAR_vegFraction.jl similarity index 100% rename from src/Models/fAPAR/fAPAR_vegFraction.jl rename to SindbadCore/src/Models/fAPAR/fAPAR_vegFraction.jl diff --git a/src/Models/getPools/getPools.jl b/SindbadCore/src/Models/getPools/getPools.jl similarity index 100% rename from src/Models/getPools/getPools.jl rename to SindbadCore/src/Models/getPools/getPools.jl diff --git a/src/Models/getPools/getPools_simple.jl b/SindbadCore/src/Models/getPools/getPools_simple.jl similarity index 100% rename from src/Models/getPools/getPools_simple.jl rename to SindbadCore/src/Models/getPools/getPools_simple.jl diff --git a/src/Models/gpp/gpp.jl b/SindbadCore/src/Models/gpp/gpp.jl similarity index 100% rename from src/Models/gpp/gpp.jl rename to SindbadCore/src/Models/gpp/gpp.jl diff --git a/src/Models/gpp/gpp_coupled.jl b/SindbadCore/src/Models/gpp/gpp_coupled.jl similarity index 100% rename from src/Models/gpp/gpp_coupled.jl rename to SindbadCore/src/Models/gpp/gpp_coupled.jl diff --git a/src/Models/gpp/gpp_min.jl b/SindbadCore/src/Models/gpp/gpp_min.jl similarity index 100% rename from src/Models/gpp/gpp_min.jl rename to SindbadCore/src/Models/gpp/gpp_min.jl diff --git a/src/Models/gpp/gpp_mult.jl b/SindbadCore/src/Models/gpp/gpp_mult.jl similarity index 100% rename from src/Models/gpp/gpp_mult.jl rename to SindbadCore/src/Models/gpp/gpp_mult.jl diff --git a/src/Models/gpp/gpp_none.jl b/SindbadCore/src/Models/gpp/gpp_none.jl similarity index 100% rename from src/Models/gpp/gpp_none.jl rename to SindbadCore/src/Models/gpp/gpp_none.jl diff --git a/src/Models/gpp/gpp_transpirationWUE.jl b/SindbadCore/src/Models/gpp/gpp_transpirationWUE.jl similarity index 100% rename from src/Models/gpp/gpp_transpirationWUE.jl rename to SindbadCore/src/Models/gpp/gpp_transpirationWUE.jl diff --git a/src/Models/gppAirT/gppAirT.jl b/SindbadCore/src/Models/gppAirT/gppAirT.jl similarity index 100% rename from src/Models/gppAirT/gppAirT.jl rename to SindbadCore/src/Models/gppAirT/gppAirT.jl diff --git a/src/Models/gppAirT/gppAirT_CASA.jl b/SindbadCore/src/Models/gppAirT/gppAirT_CASA.jl similarity index 100% rename from src/Models/gppAirT/gppAirT_CASA.jl rename to SindbadCore/src/Models/gppAirT/gppAirT_CASA.jl diff --git a/src/Models/gppAirT/gppAirT_GSI.jl b/SindbadCore/src/Models/gppAirT/gppAirT_GSI.jl similarity index 100% rename from src/Models/gppAirT/gppAirT_GSI.jl rename to SindbadCore/src/Models/gppAirT/gppAirT_GSI.jl diff --git a/src/Models/gppAirT/gppAirT_MOD17.jl b/SindbadCore/src/Models/gppAirT/gppAirT_MOD17.jl similarity index 100% rename from src/Models/gppAirT/gppAirT_MOD17.jl rename to SindbadCore/src/Models/gppAirT/gppAirT_MOD17.jl diff --git a/src/Models/gppAirT/gppAirT_Maekelae2008.jl b/SindbadCore/src/Models/gppAirT/gppAirT_Maekelae2008.jl similarity index 100% rename from src/Models/gppAirT/gppAirT_Maekelae2008.jl rename to SindbadCore/src/Models/gppAirT/gppAirT_Maekelae2008.jl diff --git a/src/Models/gppAirT/gppAirT_TEM.jl b/SindbadCore/src/Models/gppAirT/gppAirT_TEM.jl similarity index 100% rename from src/Models/gppAirT/gppAirT_TEM.jl rename to SindbadCore/src/Models/gppAirT/gppAirT_TEM.jl diff --git a/src/Models/gppAirT/gppAirT_Wang2014.jl b/SindbadCore/src/Models/gppAirT/gppAirT_Wang2014.jl similarity index 100% rename from src/Models/gppAirT/gppAirT_Wang2014.jl rename to SindbadCore/src/Models/gppAirT/gppAirT_Wang2014.jl diff --git a/src/Models/gppAirT/gppAirT_none.jl b/SindbadCore/src/Models/gppAirT/gppAirT_none.jl similarity index 100% rename from src/Models/gppAirT/gppAirT_none.jl rename to SindbadCore/src/Models/gppAirT/gppAirT_none.jl diff --git a/src/Models/gppDemand/gppDemand.jl b/SindbadCore/src/Models/gppDemand/gppDemand.jl similarity index 100% rename from src/Models/gppDemand/gppDemand.jl rename to SindbadCore/src/Models/gppDemand/gppDemand.jl diff --git a/src/Models/gppDemand/gppDemand_min.jl b/SindbadCore/src/Models/gppDemand/gppDemand_min.jl similarity index 100% rename from src/Models/gppDemand/gppDemand_min.jl rename to SindbadCore/src/Models/gppDemand/gppDemand_min.jl diff --git a/src/Models/gppDemand/gppDemand_mult.jl b/SindbadCore/src/Models/gppDemand/gppDemand_mult.jl similarity index 100% rename from src/Models/gppDemand/gppDemand_mult.jl rename to SindbadCore/src/Models/gppDemand/gppDemand_mult.jl diff --git a/src/Models/gppDemand/gppDemand_none.jl b/SindbadCore/src/Models/gppDemand/gppDemand_none.jl similarity index 100% rename from src/Models/gppDemand/gppDemand_none.jl rename to SindbadCore/src/Models/gppDemand/gppDemand_none.jl diff --git a/src/Models/gppDiffRadiation/gppDiffRadiation.jl b/SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation.jl similarity index 100% rename from src/Models/gppDiffRadiation/gppDiffRadiation.jl rename to SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation.jl diff --git a/src/Models/gppDiffRadiation/gppDiffRadiation_GSI.jl b/SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation_GSI.jl similarity index 100% rename from src/Models/gppDiffRadiation/gppDiffRadiation_GSI.jl rename to SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation_GSI.jl diff --git a/src/Models/gppDiffRadiation/gppDiffRadiation_Turner2006.jl b/SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation_Turner2006.jl similarity index 100% rename from src/Models/gppDiffRadiation/gppDiffRadiation_Turner2006.jl rename to SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation_Turner2006.jl diff --git a/src/Models/gppDiffRadiation/gppDiffRadiation_Wang2015.jl b/SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation_Wang2015.jl similarity index 100% rename from src/Models/gppDiffRadiation/gppDiffRadiation_Wang2015.jl rename to SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation_Wang2015.jl diff --git a/src/Models/gppDiffRadiation/gppDiffRadiation_none.jl b/SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation_none.jl similarity index 100% rename from src/Models/gppDiffRadiation/gppDiffRadiation_none.jl rename to SindbadCore/src/Models/gppDiffRadiation/gppDiffRadiation_none.jl diff --git a/src/Models/gppDirRadiation/gppDirRadiation.jl b/SindbadCore/src/Models/gppDirRadiation/gppDirRadiation.jl similarity index 100% rename from src/Models/gppDirRadiation/gppDirRadiation.jl rename to SindbadCore/src/Models/gppDirRadiation/gppDirRadiation.jl diff --git a/src/Models/gppDirRadiation/gppDirRadiation_Maekelae2008.jl b/SindbadCore/src/Models/gppDirRadiation/gppDirRadiation_Maekelae2008.jl similarity index 100% rename from src/Models/gppDirRadiation/gppDirRadiation_Maekelae2008.jl rename to SindbadCore/src/Models/gppDirRadiation/gppDirRadiation_Maekelae2008.jl diff --git a/src/Models/gppDirRadiation/gppDirRadiation_none.jl b/SindbadCore/src/Models/gppDirRadiation/gppDirRadiation_none.jl similarity index 100% rename from src/Models/gppDirRadiation/gppDirRadiation_none.jl rename to SindbadCore/src/Models/gppDirRadiation/gppDirRadiation_none.jl diff --git a/src/Models/gppPotential/gppPotential.jl b/SindbadCore/src/Models/gppPotential/gppPotential.jl similarity index 100% rename from src/Models/gppPotential/gppPotential.jl rename to SindbadCore/src/Models/gppPotential/gppPotential.jl diff --git a/src/Models/gppPotential/gppPotential_Monteith.jl b/SindbadCore/src/Models/gppPotential/gppPotential_Monteith.jl similarity index 100% rename from src/Models/gppPotential/gppPotential_Monteith.jl rename to SindbadCore/src/Models/gppPotential/gppPotential_Monteith.jl diff --git a/src/Models/gppSoilW/gppSoilW.jl b/SindbadCore/src/Models/gppSoilW/gppSoilW.jl similarity index 100% rename from src/Models/gppSoilW/gppSoilW.jl rename to SindbadCore/src/Models/gppSoilW/gppSoilW.jl diff --git a/src/Models/gppSoilW/gppSoilW_CASA.jl b/SindbadCore/src/Models/gppSoilW/gppSoilW_CASA.jl similarity index 100% rename from src/Models/gppSoilW/gppSoilW_CASA.jl rename to SindbadCore/src/Models/gppSoilW/gppSoilW_CASA.jl diff --git a/src/Models/gppSoilW/gppSoilW_GSI.jl b/SindbadCore/src/Models/gppSoilW/gppSoilW_GSI.jl similarity index 100% rename from src/Models/gppSoilW/gppSoilW_GSI.jl rename to SindbadCore/src/Models/gppSoilW/gppSoilW_GSI.jl diff --git a/src/Models/gppSoilW/gppSoilW_Keenan2009.jl b/SindbadCore/src/Models/gppSoilW/gppSoilW_Keenan2009.jl similarity index 100% rename from src/Models/gppSoilW/gppSoilW_Keenan2009.jl rename to SindbadCore/src/Models/gppSoilW/gppSoilW_Keenan2009.jl diff --git a/src/Models/gppSoilW/gppSoilW_Stocker2020.jl b/SindbadCore/src/Models/gppSoilW/gppSoilW_Stocker2020.jl similarity index 100% rename from src/Models/gppSoilW/gppSoilW_Stocker2020.jl rename to SindbadCore/src/Models/gppSoilW/gppSoilW_Stocker2020.jl diff --git a/src/Models/gppSoilW/gppSoilW_none.jl b/SindbadCore/src/Models/gppSoilW/gppSoilW_none.jl similarity index 100% rename from src/Models/gppSoilW/gppSoilW_none.jl rename to SindbadCore/src/Models/gppSoilW/gppSoilW_none.jl diff --git a/src/Models/gppVPD/gppVPD.jl b/SindbadCore/src/Models/gppVPD/gppVPD.jl similarity index 100% rename from src/Models/gppVPD/gppVPD.jl rename to SindbadCore/src/Models/gppVPD/gppVPD.jl diff --git a/src/Models/gppVPD/gppVPD_MOD17.jl b/SindbadCore/src/Models/gppVPD/gppVPD_MOD17.jl similarity index 100% rename from src/Models/gppVPD/gppVPD_MOD17.jl rename to SindbadCore/src/Models/gppVPD/gppVPD_MOD17.jl diff --git a/src/Models/gppVPD/gppVPD_Maekelae2008.jl b/SindbadCore/src/Models/gppVPD/gppVPD_Maekelae2008.jl similarity index 100% rename from src/Models/gppVPD/gppVPD_Maekelae2008.jl rename to SindbadCore/src/Models/gppVPD/gppVPD_Maekelae2008.jl diff --git a/src/Models/gppVPD/gppVPD_PRELES.jl b/SindbadCore/src/Models/gppVPD/gppVPD_PRELES.jl similarity index 100% rename from src/Models/gppVPD/gppVPD_PRELES.jl rename to SindbadCore/src/Models/gppVPD/gppVPD_PRELES.jl diff --git a/src/Models/gppVPD/gppVPD_expco2.jl b/SindbadCore/src/Models/gppVPD/gppVPD_expco2.jl similarity index 100% rename from src/Models/gppVPD/gppVPD_expco2.jl rename to SindbadCore/src/Models/gppVPD/gppVPD_expco2.jl diff --git a/src/Models/gppVPD/gppVPD_none.jl b/SindbadCore/src/Models/gppVPD/gppVPD_none.jl similarity index 100% rename from src/Models/gppVPD/gppVPD_none.jl rename to SindbadCore/src/Models/gppVPD/gppVPD_none.jl diff --git a/src/Models/groundWRecharge/groundWRecharge.jl b/SindbadCore/src/Models/groundWRecharge/groundWRecharge.jl similarity index 100% rename from src/Models/groundWRecharge/groundWRecharge.jl rename to SindbadCore/src/Models/groundWRecharge/groundWRecharge.jl diff --git a/src/Models/groundWRecharge/groundWRecharge_dos.jl b/SindbadCore/src/Models/groundWRecharge/groundWRecharge_dos.jl similarity index 100% rename from src/Models/groundWRecharge/groundWRecharge_dos.jl rename to SindbadCore/src/Models/groundWRecharge/groundWRecharge_dos.jl diff --git a/src/Models/groundWRecharge/groundWRecharge_fraction.jl b/SindbadCore/src/Models/groundWRecharge/groundWRecharge_fraction.jl similarity index 100% rename from src/Models/groundWRecharge/groundWRecharge_fraction.jl rename to SindbadCore/src/Models/groundWRecharge/groundWRecharge_fraction.jl diff --git a/src/Models/groundWRecharge/groundWRecharge_kUnsat.jl b/SindbadCore/src/Models/groundWRecharge/groundWRecharge_kUnsat.jl similarity index 100% rename from src/Models/groundWRecharge/groundWRecharge_kUnsat.jl rename to SindbadCore/src/Models/groundWRecharge/groundWRecharge_kUnsat.jl diff --git a/src/Models/groundWRecharge/groundWRecharge_none.jl b/SindbadCore/src/Models/groundWRecharge/groundWRecharge_none.jl similarity index 100% rename from src/Models/groundWRecharge/groundWRecharge_none.jl rename to SindbadCore/src/Models/groundWRecharge/groundWRecharge_none.jl diff --git a/src/Models/groundWSoilWInteraction/groundWSoilWInteraction.jl b/SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction.jl similarity index 100% rename from src/Models/groundWSoilWInteraction/groundWSoilWInteraction.jl rename to SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction.jl diff --git a/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_VanDijk2010.jl b/SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_VanDijk2010.jl similarity index 100% rename from src/Models/groundWSoilWInteraction/groundWSoilWInteraction_VanDijk2010.jl rename to SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_VanDijk2010.jl diff --git a/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_gradient.jl b/SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_gradient.jl similarity index 100% rename from src/Models/groundWSoilWInteraction/groundWSoilWInteraction_gradient.jl rename to SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_gradient.jl diff --git a/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_gradientNeg.jl b/SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_gradientNeg.jl similarity index 100% rename from src/Models/groundWSoilWInteraction/groundWSoilWInteraction_gradientNeg.jl rename to SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_gradientNeg.jl diff --git a/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_none.jl b/SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_none.jl similarity index 100% rename from src/Models/groundWSoilWInteraction/groundWSoilWInteraction_none.jl rename to SindbadCore/src/Models/groundWSoilWInteraction/groundWSoilWInteraction_none.jl diff --git a/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction.jl b/SindbadCore/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction.jl similarity index 100% rename from src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction.jl rename to SindbadCore/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction.jl diff --git a/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction_fracGradient.jl b/SindbadCore/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction_fracGradient.jl similarity index 100% rename from src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction_fracGradient.jl rename to SindbadCore/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction_fracGradient.jl diff --git a/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction_fracGroundW.jl b/SindbadCore/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction_fracGroundW.jl similarity index 100% rename from src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction_fracGroundW.jl rename to SindbadCore/src/Models/groundWSurfaceWInteraction/groundWSurfaceWInteraction_fracGroundW.jl diff --git a/src/Models/interception/interception.jl b/SindbadCore/src/Models/interception/interception.jl similarity index 100% rename from src/Models/interception/interception.jl rename to SindbadCore/src/Models/interception/interception.jl diff --git a/src/Models/interception/interception_Miralles2010.jl b/SindbadCore/src/Models/interception/interception_Miralles2010.jl similarity index 100% rename from src/Models/interception/interception_Miralles2010.jl rename to SindbadCore/src/Models/interception/interception_Miralles2010.jl diff --git a/src/Models/interception/interception_fAPAR.jl b/SindbadCore/src/Models/interception/interception_fAPAR.jl similarity index 100% rename from src/Models/interception/interception_fAPAR.jl rename to SindbadCore/src/Models/interception/interception_fAPAR.jl diff --git a/src/Models/interception/interception_none.jl b/SindbadCore/src/Models/interception/interception_none.jl similarity index 100% rename from src/Models/interception/interception_none.jl rename to SindbadCore/src/Models/interception/interception_none.jl diff --git a/src/Models/interception/interception_vegFraction.jl b/SindbadCore/src/Models/interception/interception_vegFraction.jl similarity index 100% rename from src/Models/interception/interception_vegFraction.jl rename to SindbadCore/src/Models/interception/interception_vegFraction.jl diff --git a/src/Models/percolation/percolation.jl b/SindbadCore/src/Models/percolation/percolation.jl similarity index 100% rename from src/Models/percolation/percolation.jl rename to SindbadCore/src/Models/percolation/percolation.jl diff --git a/src/Models/percolation/percolation_WBP.jl b/SindbadCore/src/Models/percolation/percolation_WBP.jl similarity index 100% rename from src/Models/percolation/percolation_WBP.jl rename to SindbadCore/src/Models/percolation/percolation_WBP.jl diff --git a/src/Models/plantForm/plantForm.jl b/SindbadCore/src/Models/plantForm/plantForm.jl similarity index 100% rename from src/Models/plantForm/plantForm.jl rename to SindbadCore/src/Models/plantForm/plantForm.jl diff --git a/src/Models/plantForm/plantForm_PFT.jl b/SindbadCore/src/Models/plantForm/plantForm_PFT.jl similarity index 100% rename from src/Models/plantForm/plantForm_PFT.jl rename to SindbadCore/src/Models/plantForm/plantForm_PFT.jl diff --git a/src/Models/plantForm/plantForm_fixed.jl b/SindbadCore/src/Models/plantForm/plantForm_fixed.jl similarity index 100% rename from src/Models/plantForm/plantForm_fixed.jl rename to SindbadCore/src/Models/plantForm/plantForm_fixed.jl diff --git a/src/Models/rainIntensity/rainIntensity.jl b/SindbadCore/src/Models/rainIntensity/rainIntensity.jl similarity index 100% rename from src/Models/rainIntensity/rainIntensity.jl rename to SindbadCore/src/Models/rainIntensity/rainIntensity.jl diff --git a/src/Models/rainIntensity/rainIntensity_forcing.jl b/SindbadCore/src/Models/rainIntensity/rainIntensity_forcing.jl similarity index 100% rename from src/Models/rainIntensity/rainIntensity_forcing.jl rename to SindbadCore/src/Models/rainIntensity/rainIntensity_forcing.jl diff --git a/src/Models/rainIntensity/rainIntensity_simple.jl b/SindbadCore/src/Models/rainIntensity/rainIntensity_simple.jl similarity index 100% rename from src/Models/rainIntensity/rainIntensity_simple.jl rename to SindbadCore/src/Models/rainIntensity/rainIntensity_simple.jl diff --git a/src/Models/rainSnow/rainSnow.jl b/SindbadCore/src/Models/rainSnow/rainSnow.jl similarity index 100% rename from src/Models/rainSnow/rainSnow.jl rename to SindbadCore/src/Models/rainSnow/rainSnow.jl diff --git a/src/Models/rainSnow/rainSnow_Tair.jl b/SindbadCore/src/Models/rainSnow/rainSnow_Tair.jl similarity index 100% rename from src/Models/rainSnow/rainSnow_Tair.jl rename to SindbadCore/src/Models/rainSnow/rainSnow_Tair.jl diff --git a/src/Models/rainSnow/rainSnow_forcing.jl b/SindbadCore/src/Models/rainSnow/rainSnow_forcing.jl similarity index 100% rename from src/Models/rainSnow/rainSnow_forcing.jl rename to SindbadCore/src/Models/rainSnow/rainSnow_forcing.jl diff --git a/src/Models/rainSnow/rainSnow_rain.jl b/SindbadCore/src/Models/rainSnow/rainSnow_rain.jl similarity index 100% rename from src/Models/rainSnow/rainSnow_rain.jl rename to SindbadCore/src/Models/rainSnow/rainSnow_rain.jl diff --git a/src/Models/rootMaximumDepth/rootMaximumDepth.jl b/SindbadCore/src/Models/rootMaximumDepth/rootMaximumDepth.jl similarity index 100% rename from src/Models/rootMaximumDepth/rootMaximumDepth.jl rename to SindbadCore/src/Models/rootMaximumDepth/rootMaximumDepth.jl diff --git a/src/Models/rootMaximumDepth/rootMaximumDepth_fracSoilD.jl b/SindbadCore/src/Models/rootMaximumDepth/rootMaximumDepth_fracSoilD.jl similarity index 100% rename from src/Models/rootMaximumDepth/rootMaximumDepth_fracSoilD.jl rename to SindbadCore/src/Models/rootMaximumDepth/rootMaximumDepth_fracSoilD.jl diff --git a/src/Models/rootWaterEfficiency/rootWaterEfficiency.jl b/SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency.jl similarity index 100% rename from src/Models/rootWaterEfficiency/rootWaterEfficiency.jl rename to SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency.jl diff --git a/src/Models/rootWaterEfficiency/rootWaterEfficiency_constant.jl b/SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_constant.jl similarity index 100% rename from src/Models/rootWaterEfficiency/rootWaterEfficiency_constant.jl rename to SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_constant.jl diff --git a/src/Models/rootWaterEfficiency/rootWaterEfficiency_expCvegRoot.jl b/SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_expCvegRoot.jl similarity index 100% rename from src/Models/rootWaterEfficiency/rootWaterEfficiency_expCvegRoot.jl rename to SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_expCvegRoot.jl diff --git a/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2Layer.jl b/SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2Layer.jl similarity index 100% rename from src/Models/rootWaterEfficiency/rootWaterEfficiency_k2Layer.jl rename to SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2Layer.jl diff --git a/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2fRD.jl b/SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2fRD.jl similarity index 100% rename from src/Models/rootWaterEfficiency/rootWaterEfficiency_k2fRD.jl rename to SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2fRD.jl diff --git a/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2fvegFraction.jl b/SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2fvegFraction.jl similarity index 100% rename from src/Models/rootWaterEfficiency/rootWaterEfficiency_k2fvegFraction.jl rename to SindbadCore/src/Models/rootWaterEfficiency/rootWaterEfficiency_k2fvegFraction.jl diff --git a/src/Models/rootWaterUptake/rootWaterUptake.jl b/SindbadCore/src/Models/rootWaterUptake/rootWaterUptake.jl similarity index 100% rename from src/Models/rootWaterUptake/rootWaterUptake.jl rename to SindbadCore/src/Models/rootWaterUptake/rootWaterUptake.jl diff --git a/src/Models/rootWaterUptake/rootWaterUptake_proportion.jl b/SindbadCore/src/Models/rootWaterUptake/rootWaterUptake_proportion.jl similarity index 100% rename from src/Models/rootWaterUptake/rootWaterUptake_proportion.jl rename to SindbadCore/src/Models/rootWaterUptake/rootWaterUptake_proportion.jl diff --git a/src/Models/rootWaterUptake/rootWaterUptake_topBottom.jl b/SindbadCore/src/Models/rootWaterUptake/rootWaterUptake_topBottom.jl similarity index 100% rename from src/Models/rootWaterUptake/rootWaterUptake_topBottom.jl rename to SindbadCore/src/Models/rootWaterUptake/rootWaterUptake_topBottom.jl diff --git a/lib/SindbadTEM/src/runModels.jl b/SindbadCore/src/Models/runModels.jl similarity index 90% rename from lib/SindbadTEM/src/runModels.jl rename to SindbadCore/src/Models/runModels.jl index 0feb49898..7fb48ee0c 100644 --- a/lib/SindbadTEM/src/runModels.jl +++ b/SindbadCore/src/Models/runModels.jl @@ -19,7 +19,7 @@ function computeTEM(models::Tuple, forcing, land, model_helpers, ::DoDebugModel) otype = typeof(land) return foldlUnrolled(models; init=land) do _land, model println("compute: $(typeof(model))") - @time _land = Models.compute(model, forcing, _land, model_helpers)::otype + @time _land = compute(model, forcing, _land, model_helpers)::otype end end @@ -54,7 +54,7 @@ run the compute function of SINDBAD models """ function computeTEM(models::LongTuple, forcing, _land, model_helpers) return foldlLongTuple(models, init=_land) do model, _land - Models.compute(model, forcing, _land, model_helpers) + compute(model, forcing, _land, model_helpers) end end @@ -72,7 +72,7 @@ run the compute function of SINDBAD models """ function computeTEM(models::Tuple, forcing, land, model_helpers) return foldlUnrolled(models; init=land) do _land, model - _land = Models.compute(model, forcing, _land, model_helpers) + _land = compute(model, forcing, _land, model_helpers) end end @@ -89,7 +89,7 @@ run the define and precompute functions of SINDBAD models to instantiate all fie """ function defineTEM(models::Tuple, forcing, land, model_helpers) return foldlUnrolled(models; init=land) do _land, model - _land = Models.define(model, forcing, _land, model_helpers) + _land = define(model, forcing, _land, model_helpers) end end @@ -106,7 +106,7 @@ run the precompute function of SINDBAD models to instantiate all fields of land """ function defineTEM(models::LongTuple, forcing, _land, model_helpers) return foldlLongTuple(models, init=_land) do model, _land - _land = Models.define(model, forcing, _land, model_helpers) + _land = define(model, forcing, _land, model_helpers) end end @@ -124,8 +124,8 @@ run the define and precompute functions of SINDBAD models to instantiate all fie """ function definePrecomputeTEM(models::Tuple, forcing, land, model_helpers) return foldlUnrolled(models; init=land) do _land, model - _land = Models.define(model, forcing, _land, model_helpers) - _land = Models.precompute(model, forcing, _land, model_helpers) + _land = define(model, forcing, _land, model_helpers) + _land = precompute(model, forcing, _land, model_helpers) end end @@ -142,8 +142,8 @@ run the precompute function of SINDBAD models to instantiate all fields of land """ function definePrecomputeTEM(models::LongTuple, forcing, _land, model_helpers) return foldlLongTuple(models, init=_land) do model, _land - _land = Models.define(model, forcing, _land, model_helpers) - _land = Models.precompute(model, forcing, _land, model_helpers) + _land = define(model, forcing, _land, model_helpers) + _land = precompute(model, forcing, _land, model_helpers) end end @@ -164,7 +164,7 @@ function precomputeTEM(models::Tuple, forcing, land, model_helpers, ::DoDebugMod otype = typeof(land) return foldlUnrolled(models; init=land) do _land, model println("precompute: $(typeof(model))") - @time _land = Models.precompute(model, forcing, _land, model_helpers)::otype + @time _land = precompute(model, forcing, _land, model_helpers)::otype end end @@ -199,7 +199,7 @@ run the precompute function of SINDBAD models to instantiate all fields of land """ function precomputeTEM(models::LongTuple, forcing, _land, model_helpers) return foldlLongTuple(models, init=_land) do model, _land - Models.precompute(model, forcing, _land, model_helpers) + precompute(model, forcing, _land, model_helpers) end end @@ -216,7 +216,7 @@ run the precompute function of SINDBAD models to instantiate all fields of land """ function precomputeTEM(models::Tuple, forcing, land, model_helpers) return foldlUnrolled(models; init=land) do _land, model - _land = Models.precompute(model, forcing, _land, model_helpers) + _land = precompute(model, forcing, _land, model_helpers) end end diff --git a/src/Models/runoff/runoff.jl b/SindbadCore/src/Models/runoff/runoff.jl similarity index 100% rename from src/Models/runoff/runoff.jl rename to SindbadCore/src/Models/runoff/runoff.jl diff --git a/src/Models/runoff/runoff_sum.jl b/SindbadCore/src/Models/runoff/runoff_sum.jl similarity index 100% rename from src/Models/runoff/runoff_sum.jl rename to SindbadCore/src/Models/runoff/runoff_sum.jl diff --git a/src/Models/runoffBase/runoffBase.jl b/SindbadCore/src/Models/runoffBase/runoffBase.jl similarity index 100% rename from src/Models/runoffBase/runoffBase.jl rename to SindbadCore/src/Models/runoffBase/runoffBase.jl diff --git a/src/Models/runoffBase/runoffBase_Zhang2008.jl b/SindbadCore/src/Models/runoffBase/runoffBase_Zhang2008.jl similarity index 100% rename from src/Models/runoffBase/runoffBase_Zhang2008.jl rename to SindbadCore/src/Models/runoffBase/runoffBase_Zhang2008.jl diff --git a/src/Models/runoffBase/runoffBase_none.jl b/SindbadCore/src/Models/runoffBase/runoffBase_none.jl similarity index 100% rename from src/Models/runoffBase/runoffBase_none.jl rename to SindbadCore/src/Models/runoffBase/runoffBase_none.jl diff --git a/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess.jl b/SindbadCore/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess.jl similarity index 100% rename from src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess.jl rename to SindbadCore/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess.jl diff --git a/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_Jung.jl b/SindbadCore/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_Jung.jl similarity index 100% rename from src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_Jung.jl rename to SindbadCore/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_Jung.jl diff --git a/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_kUnsat.jl b/SindbadCore/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_kUnsat.jl similarity index 100% rename from src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_kUnsat.jl rename to SindbadCore/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_kUnsat.jl diff --git a/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_none.jl b/SindbadCore/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_none.jl similarity index 100% rename from src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_none.jl rename to SindbadCore/src/Models/runoffInfiltrationExcess/runoffInfiltrationExcess_none.jl diff --git a/src/Models/runoffInterflow/runoffInterflow.jl b/SindbadCore/src/Models/runoffInterflow/runoffInterflow.jl similarity index 100% rename from src/Models/runoffInterflow/runoffInterflow.jl rename to SindbadCore/src/Models/runoffInterflow/runoffInterflow.jl diff --git a/src/Models/runoffInterflow/runoffInterflow_none.jl b/SindbadCore/src/Models/runoffInterflow/runoffInterflow_none.jl similarity index 100% rename from src/Models/runoffInterflow/runoffInterflow_none.jl rename to SindbadCore/src/Models/runoffInterflow/runoffInterflow_none.jl diff --git a/src/Models/runoffInterflow/runoffInterflow_residual.jl b/SindbadCore/src/Models/runoffInterflow/runoffInterflow_residual.jl similarity index 100% rename from src/Models/runoffInterflow/runoffInterflow_residual.jl rename to SindbadCore/src/Models/runoffInterflow/runoffInterflow_residual.jl diff --git a/src/Models/runoffOverland/runoffOverland.jl b/SindbadCore/src/Models/runoffOverland/runoffOverland.jl similarity index 100% rename from src/Models/runoffOverland/runoffOverland.jl rename to SindbadCore/src/Models/runoffOverland/runoffOverland.jl diff --git a/src/Models/runoffOverland/runoffOverland_Inf.jl b/SindbadCore/src/Models/runoffOverland/runoffOverland_Inf.jl similarity index 100% rename from src/Models/runoffOverland/runoffOverland_Inf.jl rename to SindbadCore/src/Models/runoffOverland/runoffOverland_Inf.jl diff --git a/src/Models/runoffOverland/runoffOverland_InfIntSat.jl b/SindbadCore/src/Models/runoffOverland/runoffOverland_InfIntSat.jl similarity index 100% rename from src/Models/runoffOverland/runoffOverland_InfIntSat.jl rename to SindbadCore/src/Models/runoffOverland/runoffOverland_InfIntSat.jl diff --git a/src/Models/runoffOverland/runoffOverland_Sat.jl b/SindbadCore/src/Models/runoffOverland/runoffOverland_Sat.jl similarity index 100% rename from src/Models/runoffOverland/runoffOverland_Sat.jl rename to SindbadCore/src/Models/runoffOverland/runoffOverland_Sat.jl diff --git a/src/Models/runoffOverland/runoffOverland_none.jl b/SindbadCore/src/Models/runoffOverland/runoffOverland_none.jl similarity index 100% rename from src/Models/runoffOverland/runoffOverland_none.jl rename to SindbadCore/src/Models/runoffOverland/runoffOverland_none.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992MixedVegFraction.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992MixedVegFraction.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992MixedVegFraction.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992MixedVegFraction.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFraction.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFraction.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFraction.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFraction.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFractionFroSoil.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFractionFroSoil.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFractionFroSoil.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFractionFroSoil.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFractionPFT.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFractionPFT.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFractionPFT.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Bergstroem1992VegFractionPFT.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess_Zhang2008.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Zhang2008.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess_Zhang2008.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_Zhang2008.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess_none.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_none.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess_none.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_none.jl diff --git a/src/Models/runoffSaturationExcess/runoffSaturationExcess_satFraction.jl b/SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_satFraction.jl similarity index 100% rename from src/Models/runoffSaturationExcess/runoffSaturationExcess_satFraction.jl rename to SindbadCore/src/Models/runoffSaturationExcess/runoffSaturationExcess_satFraction.jl diff --git a/src/Models/runoffSurface/runoffSurface.jl b/SindbadCore/src/Models/runoffSurface/runoffSurface.jl similarity index 100% rename from src/Models/runoffSurface/runoffSurface.jl rename to SindbadCore/src/Models/runoffSurface/runoffSurface.jl diff --git a/src/Models/runoffSurface/runoffSurface_Orth2013.jl b/SindbadCore/src/Models/runoffSurface/runoffSurface_Orth2013.jl similarity index 100% rename from src/Models/runoffSurface/runoffSurface_Orth2013.jl rename to SindbadCore/src/Models/runoffSurface/runoffSurface_Orth2013.jl diff --git a/src/Models/runoffSurface/runoffSurface_Trautmann2018.jl b/SindbadCore/src/Models/runoffSurface/runoffSurface_Trautmann2018.jl similarity index 100% rename from src/Models/runoffSurface/runoffSurface_Trautmann2018.jl rename to SindbadCore/src/Models/runoffSurface/runoffSurface_Trautmann2018.jl diff --git a/src/Models/runoffSurface/runoffSurface_all.jl b/SindbadCore/src/Models/runoffSurface/runoffSurface_all.jl similarity index 100% rename from src/Models/runoffSurface/runoffSurface_all.jl rename to SindbadCore/src/Models/runoffSurface/runoffSurface_all.jl diff --git a/src/Models/runoffSurface/runoffSurface_directIndirect.jl b/SindbadCore/src/Models/runoffSurface/runoffSurface_directIndirect.jl similarity index 100% rename from src/Models/runoffSurface/runoffSurface_directIndirect.jl rename to SindbadCore/src/Models/runoffSurface/runoffSurface_directIndirect.jl diff --git a/src/Models/runoffSurface/runoffSurface_directIndirectFroSoil.jl b/SindbadCore/src/Models/runoffSurface/runoffSurface_directIndirectFroSoil.jl similarity index 100% rename from src/Models/runoffSurface/runoffSurface_directIndirectFroSoil.jl rename to SindbadCore/src/Models/runoffSurface/runoffSurface_directIndirectFroSoil.jl diff --git a/src/Models/runoffSurface/runoffSurface_indirect.jl b/SindbadCore/src/Models/runoffSurface/runoffSurface_indirect.jl similarity index 100% rename from src/Models/runoffSurface/runoffSurface_indirect.jl rename to SindbadCore/src/Models/runoffSurface/runoffSurface_indirect.jl diff --git a/src/Models/runoffSurface/runoffSurface_none.jl b/SindbadCore/src/Models/runoffSurface/runoffSurface_none.jl similarity index 100% rename from src/Models/runoffSurface/runoffSurface_none.jl rename to SindbadCore/src/Models/runoffSurface/runoffSurface_none.jl diff --git a/src/Models/saturatedFraction/saturatedFraction.jl b/SindbadCore/src/Models/saturatedFraction/saturatedFraction.jl similarity index 100% rename from src/Models/saturatedFraction/saturatedFraction.jl rename to SindbadCore/src/Models/saturatedFraction/saturatedFraction.jl diff --git a/src/Models/saturatedFraction/saturatedFraction_none.jl b/SindbadCore/src/Models/saturatedFraction/saturatedFraction_none.jl similarity index 100% rename from src/Models/saturatedFraction/saturatedFraction_none.jl rename to SindbadCore/src/Models/saturatedFraction/saturatedFraction_none.jl diff --git a/src/Models/snowFraction/snowFraction.jl b/SindbadCore/src/Models/snowFraction/snowFraction.jl similarity index 100% rename from src/Models/snowFraction/snowFraction.jl rename to SindbadCore/src/Models/snowFraction/snowFraction.jl diff --git a/src/Models/snowFraction/snowFraction_HTESSEL.jl b/SindbadCore/src/Models/snowFraction/snowFraction_HTESSEL.jl similarity index 100% rename from src/Models/snowFraction/snowFraction_HTESSEL.jl rename to SindbadCore/src/Models/snowFraction/snowFraction_HTESSEL.jl diff --git a/src/Models/snowFraction/snowFraction_binary.jl b/SindbadCore/src/Models/snowFraction/snowFraction_binary.jl similarity index 100% rename from src/Models/snowFraction/snowFraction_binary.jl rename to SindbadCore/src/Models/snowFraction/snowFraction_binary.jl diff --git a/src/Models/snowFraction/snowFraction_none.jl b/SindbadCore/src/Models/snowFraction/snowFraction_none.jl similarity index 100% rename from src/Models/snowFraction/snowFraction_none.jl rename to SindbadCore/src/Models/snowFraction/snowFraction_none.jl diff --git a/src/Models/snowMelt/snowMelt.jl b/SindbadCore/src/Models/snowMelt/snowMelt.jl similarity index 100% rename from src/Models/snowMelt/snowMelt.jl rename to SindbadCore/src/Models/snowMelt/snowMelt.jl diff --git a/src/Models/snowMelt/snowMelt_Tair.jl b/SindbadCore/src/Models/snowMelt/snowMelt_Tair.jl similarity index 100% rename from src/Models/snowMelt/snowMelt_Tair.jl rename to SindbadCore/src/Models/snowMelt/snowMelt_Tair.jl diff --git a/src/Models/snowMelt/snowMelt_TairRn.jl b/SindbadCore/src/Models/snowMelt/snowMelt_TairRn.jl similarity index 100% rename from src/Models/snowMelt/snowMelt_TairRn.jl rename to SindbadCore/src/Models/snowMelt/snowMelt_TairRn.jl diff --git a/src/Models/soilProperties/soilProperties.jl b/SindbadCore/src/Models/soilProperties/soilProperties.jl similarity index 100% rename from src/Models/soilProperties/soilProperties.jl rename to SindbadCore/src/Models/soilProperties/soilProperties.jl diff --git a/src/Models/soilProperties/soilProperties_Saxton1986.jl b/SindbadCore/src/Models/soilProperties/soilProperties_Saxton1986.jl similarity index 100% rename from src/Models/soilProperties/soilProperties_Saxton1986.jl rename to SindbadCore/src/Models/soilProperties/soilProperties_Saxton1986.jl diff --git a/src/Models/soilProperties/soilProperties_Saxton2006.jl b/SindbadCore/src/Models/soilProperties/soilProperties_Saxton2006.jl similarity index 100% rename from src/Models/soilProperties/soilProperties_Saxton2006.jl rename to SindbadCore/src/Models/soilProperties/soilProperties_Saxton2006.jl diff --git a/src/Models/soilTexture/soilTexture.jl b/SindbadCore/src/Models/soilTexture/soilTexture.jl similarity index 100% rename from src/Models/soilTexture/soilTexture.jl rename to SindbadCore/src/Models/soilTexture/soilTexture.jl diff --git a/src/Models/soilTexture/soilTexture_constant.jl b/SindbadCore/src/Models/soilTexture/soilTexture_constant.jl similarity index 100% rename from src/Models/soilTexture/soilTexture_constant.jl rename to SindbadCore/src/Models/soilTexture/soilTexture_constant.jl diff --git a/src/Models/soilTexture/soilTexture_forcing.jl b/SindbadCore/src/Models/soilTexture/soilTexture_forcing.jl similarity index 100% rename from src/Models/soilTexture/soilTexture_forcing.jl rename to SindbadCore/src/Models/soilTexture/soilTexture_forcing.jl diff --git a/src/Models/soilWBase/soilWBase.jl b/SindbadCore/src/Models/soilWBase/soilWBase.jl similarity index 100% rename from src/Models/soilWBase/soilWBase.jl rename to SindbadCore/src/Models/soilWBase/soilWBase.jl diff --git a/src/Models/soilWBase/soilWBase_smax1Layer.jl b/SindbadCore/src/Models/soilWBase/soilWBase_smax1Layer.jl similarity index 100% rename from src/Models/soilWBase/soilWBase_smax1Layer.jl rename to SindbadCore/src/Models/soilWBase/soilWBase_smax1Layer.jl diff --git a/src/Models/soilWBase/soilWBase_smax2Layer.jl b/SindbadCore/src/Models/soilWBase/soilWBase_smax2Layer.jl similarity index 100% rename from src/Models/soilWBase/soilWBase_smax2Layer.jl rename to SindbadCore/src/Models/soilWBase/soilWBase_smax2Layer.jl diff --git a/src/Models/soilWBase/soilWBase_smax2fRD4.jl b/SindbadCore/src/Models/soilWBase/soilWBase_smax2fRD4.jl similarity index 100% rename from src/Models/soilWBase/soilWBase_smax2fRD4.jl rename to SindbadCore/src/Models/soilWBase/soilWBase_smax2fRD4.jl diff --git a/src/Models/soilWBase/soilWBase_uniform.jl b/SindbadCore/src/Models/soilWBase/soilWBase_uniform.jl similarity index 100% rename from src/Models/soilWBase/soilWBase_uniform.jl rename to SindbadCore/src/Models/soilWBase/soilWBase_uniform.jl diff --git a/src/Models/standardSindbadModels.jl b/SindbadCore/src/Models/standardSindbadModels.jl similarity index 100% rename from src/Models/standardSindbadModels.jl rename to SindbadCore/src/Models/standardSindbadModels.jl diff --git a/src/Models/sublimation/sublimation.jl b/SindbadCore/src/Models/sublimation/sublimation.jl similarity index 100% rename from src/Models/sublimation/sublimation.jl rename to SindbadCore/src/Models/sublimation/sublimation.jl diff --git a/src/Models/sublimation/sublimation_GLEAM.jl b/SindbadCore/src/Models/sublimation/sublimation_GLEAM.jl similarity index 100% rename from src/Models/sublimation/sublimation_GLEAM.jl rename to SindbadCore/src/Models/sublimation/sublimation_GLEAM.jl diff --git a/src/Models/sublimation/sublimation_none.jl b/SindbadCore/src/Models/sublimation/sublimation_none.jl similarity index 100% rename from src/Models/sublimation/sublimation_none.jl rename to SindbadCore/src/Models/sublimation/sublimation_none.jl diff --git a/src/Models/transpiration/transpiration.jl b/SindbadCore/src/Models/transpiration/transpiration.jl similarity index 100% rename from src/Models/transpiration/transpiration.jl rename to SindbadCore/src/Models/transpiration/transpiration.jl diff --git a/src/Models/transpiration/transpiration_coupled.jl b/SindbadCore/src/Models/transpiration/transpiration_coupled.jl similarity index 100% rename from src/Models/transpiration/transpiration_coupled.jl rename to SindbadCore/src/Models/transpiration/transpiration_coupled.jl diff --git a/src/Models/transpiration/transpiration_demandSupply.jl b/SindbadCore/src/Models/transpiration/transpiration_demandSupply.jl similarity index 100% rename from src/Models/transpiration/transpiration_demandSupply.jl rename to SindbadCore/src/Models/transpiration/transpiration_demandSupply.jl diff --git a/src/Models/transpiration/transpiration_none.jl b/SindbadCore/src/Models/transpiration/transpiration_none.jl similarity index 100% rename from src/Models/transpiration/transpiration_none.jl rename to SindbadCore/src/Models/transpiration/transpiration_none.jl diff --git a/src/Models/transpirationDemand/transpirationDemand.jl b/SindbadCore/src/Models/transpirationDemand/transpirationDemand.jl similarity index 100% rename from src/Models/transpirationDemand/transpirationDemand.jl rename to SindbadCore/src/Models/transpirationDemand/transpirationDemand.jl diff --git a/src/Models/transpirationDemand/transpirationDemand_CASA.jl b/SindbadCore/src/Models/transpirationDemand/transpirationDemand_CASA.jl similarity index 100% rename from src/Models/transpirationDemand/transpirationDemand_CASA.jl rename to SindbadCore/src/Models/transpirationDemand/transpirationDemand_CASA.jl diff --git a/src/Models/transpirationDemand/transpirationDemand_PET.jl b/SindbadCore/src/Models/transpirationDemand/transpirationDemand_PET.jl similarity index 100% rename from src/Models/transpirationDemand/transpirationDemand_PET.jl rename to SindbadCore/src/Models/transpirationDemand/transpirationDemand_PET.jl diff --git a/src/Models/transpirationDemand/transpirationDemand_PETfAPAR.jl b/SindbadCore/src/Models/transpirationDemand/transpirationDemand_PETfAPAR.jl similarity index 100% rename from src/Models/transpirationDemand/transpirationDemand_PETfAPAR.jl rename to SindbadCore/src/Models/transpirationDemand/transpirationDemand_PETfAPAR.jl diff --git a/src/Models/transpirationDemand/transpirationDemand_PETvegFraction.jl b/SindbadCore/src/Models/transpirationDemand/transpirationDemand_PETvegFraction.jl similarity index 100% rename from src/Models/transpirationDemand/transpirationDemand_PETvegFraction.jl rename to SindbadCore/src/Models/transpirationDemand/transpirationDemand_PETvegFraction.jl diff --git a/src/Models/transpirationSupply/transpirationSupply.jl b/SindbadCore/src/Models/transpirationSupply/transpirationSupply.jl similarity index 100% rename from src/Models/transpirationSupply/transpirationSupply.jl rename to SindbadCore/src/Models/transpirationSupply/transpirationSupply.jl diff --git a/src/Models/transpirationSupply/transpirationSupply_CASA.jl b/SindbadCore/src/Models/transpirationSupply/transpirationSupply_CASA.jl similarity index 100% rename from src/Models/transpirationSupply/transpirationSupply_CASA.jl rename to SindbadCore/src/Models/transpirationSupply/transpirationSupply_CASA.jl diff --git a/src/Models/transpirationSupply/transpirationSupply_Federer1982.jl b/SindbadCore/src/Models/transpirationSupply/transpirationSupply_Federer1982.jl similarity index 100% rename from src/Models/transpirationSupply/transpirationSupply_Federer1982.jl rename to SindbadCore/src/Models/transpirationSupply/transpirationSupply_Federer1982.jl diff --git a/src/Models/transpirationSupply/transpirationSupply_wAWC.jl b/SindbadCore/src/Models/transpirationSupply/transpirationSupply_wAWC.jl similarity index 100% rename from src/Models/transpirationSupply/transpirationSupply_wAWC.jl rename to SindbadCore/src/Models/transpirationSupply/transpirationSupply_wAWC.jl diff --git a/src/Models/transpirationSupply/transpirationSupply_wAWCvegFraction.jl b/SindbadCore/src/Models/transpirationSupply/transpirationSupply_wAWCvegFraction.jl similarity index 100% rename from src/Models/transpirationSupply/transpirationSupply_wAWCvegFraction.jl rename to SindbadCore/src/Models/transpirationSupply/transpirationSupply_wAWCvegFraction.jl diff --git a/src/Models/treeFraction/treeFraction.jl b/SindbadCore/src/Models/treeFraction/treeFraction.jl similarity index 100% rename from src/Models/treeFraction/treeFraction.jl rename to SindbadCore/src/Models/treeFraction/treeFraction.jl diff --git a/src/Models/treeFraction/treeFraction_constant.jl b/SindbadCore/src/Models/treeFraction/treeFraction_constant.jl similarity index 100% rename from src/Models/treeFraction/treeFraction_constant.jl rename to SindbadCore/src/Models/treeFraction/treeFraction_constant.jl diff --git a/src/Models/treeFraction/treeFraction_forcing.jl b/SindbadCore/src/Models/treeFraction/treeFraction_forcing.jl similarity index 100% rename from src/Models/treeFraction/treeFraction_forcing.jl rename to SindbadCore/src/Models/treeFraction/treeFraction_forcing.jl diff --git a/src/Models/vegAvailableWater/vegAvailableWater.jl b/SindbadCore/src/Models/vegAvailableWater/vegAvailableWater.jl similarity index 100% rename from src/Models/vegAvailableWater/vegAvailableWater.jl rename to SindbadCore/src/Models/vegAvailableWater/vegAvailableWater.jl diff --git a/src/Models/vegAvailableWater/vegAvailableWater_rootWaterEfficiency.jl b/SindbadCore/src/Models/vegAvailableWater/vegAvailableWater_rootWaterEfficiency.jl similarity index 100% rename from src/Models/vegAvailableWater/vegAvailableWater_rootWaterEfficiency.jl rename to SindbadCore/src/Models/vegAvailableWater/vegAvailableWater_rootWaterEfficiency.jl diff --git a/src/Models/vegAvailableWater/vegAvailableWater_sigmoid.jl b/SindbadCore/src/Models/vegAvailableWater/vegAvailableWater_sigmoid.jl similarity index 100% rename from src/Models/vegAvailableWater/vegAvailableWater_sigmoid.jl rename to SindbadCore/src/Models/vegAvailableWater/vegAvailableWater_sigmoid.jl diff --git a/src/Models/vegFraction/vegFraction.jl b/SindbadCore/src/Models/vegFraction/vegFraction.jl similarity index 100% rename from src/Models/vegFraction/vegFraction.jl rename to SindbadCore/src/Models/vegFraction/vegFraction.jl diff --git a/src/Models/vegFraction/vegFraction_constant.jl b/SindbadCore/src/Models/vegFraction/vegFraction_constant.jl similarity index 100% rename from src/Models/vegFraction/vegFraction_constant.jl rename to SindbadCore/src/Models/vegFraction/vegFraction_constant.jl diff --git a/src/Models/vegFraction/vegFraction_forcing.jl b/SindbadCore/src/Models/vegFraction/vegFraction_forcing.jl similarity index 100% rename from src/Models/vegFraction/vegFraction_forcing.jl rename to SindbadCore/src/Models/vegFraction/vegFraction_forcing.jl diff --git a/src/Models/vegFraction/vegFraction_scaledEVI.jl b/SindbadCore/src/Models/vegFraction/vegFraction_scaledEVI.jl similarity index 100% rename from src/Models/vegFraction/vegFraction_scaledEVI.jl rename to SindbadCore/src/Models/vegFraction/vegFraction_scaledEVI.jl diff --git a/src/Models/vegFraction/vegFraction_scaledLAI.jl b/SindbadCore/src/Models/vegFraction/vegFraction_scaledLAI.jl similarity index 100% rename from src/Models/vegFraction/vegFraction_scaledLAI.jl rename to SindbadCore/src/Models/vegFraction/vegFraction_scaledLAI.jl diff --git a/src/Models/vegFraction/vegFraction_scaledNDVI.jl b/SindbadCore/src/Models/vegFraction/vegFraction_scaledNDVI.jl similarity index 100% rename from src/Models/vegFraction/vegFraction_scaledNDVI.jl rename to SindbadCore/src/Models/vegFraction/vegFraction_scaledNDVI.jl diff --git a/src/Models/vegFraction/vegFraction_scaledNIRv.jl b/SindbadCore/src/Models/vegFraction/vegFraction_scaledNIRv.jl similarity index 100% rename from src/Models/vegFraction/vegFraction_scaledNIRv.jl rename to SindbadCore/src/Models/vegFraction/vegFraction_scaledNIRv.jl diff --git a/src/Models/vegFraction/vegFraction_scaledfAPAR.jl b/SindbadCore/src/Models/vegFraction/vegFraction_scaledfAPAR.jl similarity index 100% rename from src/Models/vegFraction/vegFraction_scaledfAPAR.jl rename to SindbadCore/src/Models/vegFraction/vegFraction_scaledfAPAR.jl diff --git a/src/Models/wCycle/wCycle.jl b/SindbadCore/src/Models/wCycle/wCycle.jl similarity index 100% rename from src/Models/wCycle/wCycle.jl rename to SindbadCore/src/Models/wCycle/wCycle.jl diff --git a/src/Models/wCycle/wCycle_combined.jl b/SindbadCore/src/Models/wCycle/wCycle_combined.jl similarity index 100% rename from src/Models/wCycle/wCycle_combined.jl rename to SindbadCore/src/Models/wCycle/wCycle_combined.jl diff --git a/src/Models/wCycle/wCycle_components.jl b/SindbadCore/src/Models/wCycle/wCycle_components.jl similarity index 100% rename from src/Models/wCycle/wCycle_components.jl rename to SindbadCore/src/Models/wCycle/wCycle_components.jl diff --git a/src/Models/wCycleBase/wCycleBase.jl b/SindbadCore/src/Models/wCycleBase/wCycleBase.jl similarity index 100% rename from src/Models/wCycleBase/wCycleBase.jl rename to SindbadCore/src/Models/wCycleBase/wCycleBase.jl diff --git a/src/Models/wCycleBase/wCycleBase_simple.jl b/SindbadCore/src/Models/wCycleBase/wCycleBase_simple.jl similarity index 100% rename from src/Models/wCycleBase/wCycleBase_simple.jl rename to SindbadCore/src/Models/wCycleBase/wCycleBase_simple.jl diff --git a/src/Models/waterBalance/waterBalance.jl b/SindbadCore/src/Models/waterBalance/waterBalance.jl similarity index 100% rename from src/Models/waterBalance/waterBalance.jl rename to SindbadCore/src/Models/waterBalance/waterBalance.jl diff --git a/src/Models/waterBalance/waterBalance_simple.jl b/SindbadCore/src/Models/waterBalance/waterBalance_simple.jl similarity index 94% rename from src/Models/waterBalance/waterBalance_simple.jl rename to SindbadCore/src/Models/waterBalance/waterBalance_simple.jl index 39d410e6b..e4fef7170 100644 --- a/src/Models/waterBalance/waterBalance_simple.jl +++ b/SindbadCore/src/Models/waterBalance/waterBalance_simple.jl @@ -8,9 +8,9 @@ function throwError(forcing, land, msg, water_balance, total_water, total_water_ @show land @show forcing println(msg) - if hasproperty(Sindbad, :error_catcher) - push!(Sindbad.error_catcher, land) - push!(Sindbad.error_catcher, msg) + if hasproperty(SindbadCore, :error_catcher) + push!(SindbadCore.error_catcher, land) + push!(SindbadCore.error_catcher, msg) end error(msg) end diff --git a/SindbadCore/src/SindbadCore.jl b/SindbadCore/src/SindbadCore.jl new file mode 100644 index 000000000..1baea863b --- /dev/null +++ b/SindbadCore/src/SindbadCore.jl @@ -0,0 +1,164 @@ +""" + SindbadCore + +A Julia package for the terrestrial ecosystem models within **S**trategies to **IN**tegrate **D**ata and **B**iogeochemic**A**l mo**D**els `(SINDBAD)` framework. + +The `SindbadCore` package serves as the core of the SINDBAD framework, providing foundational types, utilities, and tools for building and managing SINDBAD models. + +# Purpose: +This package defines the `LandEcosystem` supertype, which serves as the base for all SINDBAD models. It also provides utilities for managing model variables, tools for model operations, and a catalog of variables used in SINDBAD workflows. + +# Dependencies: +- `Reexport`: Simplifies re-exporting functionality from other packages, ensuring a clean and modular design. +- `CodeTracking`: Enables tracking of code definitions, useful for debugging and development workflows. +- `DataStructures`: Provides advanced data structures (e.g., `OrderedDict`, `Deque`) for efficient data handling in SINDBAD models. +- `Dates`: Handles date and time operations, useful for managing temporal data in SINDBAD experiments. +- `Flatten`: Supplies tools for flattening nested data structures, simplifying the handling of hierarchical model variables. +- `InteractiveUtils`: Enables interactive exploration and debugging during development. +- `Parameters`: Provides macros for defining and managing model parameters in a concise and readable manner. +- `StaticArraysCore`: Supports efficient, fixed-size arrays (e.g., `SVector`, `MArray`) for performance-critical operations in SINDBAD models. +- `TypedTables`: Provides lightweight, type-stable tables for structured data manipulation. +- `Accessors`: Enables efficient access and modification of nested data structures, simplifying the handling of SINDBAD configurations. +- `StatsBase`: Supplies statistical functions such as `mean`, `percentile`, `cor`, and `corspearman` for computing metrics like correlation and distribution-based statistics. +- `NaNStatistics`: Extends statistical operations to handle missing values (`NaN`), ensuring robust data analysis. + + +# Included Files: +1. **`coreTypes.jl`**: + - Defines the core types used in SINDBAD, including the `LandEcosystem` supertype and other fundamental types. + +2. **`utilsCore.jl`**: + - Contains core utility functions for SINDBAD, including helper methods for array operations and code generation macros for NamedTuple packing and unpacking. + +3. **`sindbadVariableCatalog.jl`**: + - Defines a catalog of variables used in SINDBAD models, ensuring consistency and standardization across workflows. Note that every new variable would need a manual entry in the catalog so that the output files are written with correct information. + +4. **`modelTools.jl`**: + - Provides tools for extracting information from SINDBAD models, including mode code, variables, and parameters. + +5. **`Models/models.jl`**: + - Implements the core SINDBAD models, inheriting from the `LandEcosystem` supertype. Also, introduces the fallback function for compute, precompute, etc. so that they are optional in every model. + +6. **`generateCode.jl`**: + - Contains code generation utilities for SINDBAD models and workflows. + +# Notes: +- The `LandEcosystem` supertype serves as the foundation for all SINDBAD models, enabling extensibility and modularity. +- The package re-exports key functionality from other packages (e.g., `Flatten`, `StaticArraysCore`, `DataStructures`) to simplify usage and integration. +- Designed to be lightweight and modular, allowing seamless integration with other SINDBAD packages. + +# Examples: +1. **Defining a new SINDBAD model**: +```julia +struct MyModel <: LandEcosystem + # Define model-specific fields +end +``` + +2. **Using utilities from the package**: +```julia +using SindbadCore +# Access utilities or models +flattened_data = flatten(nested_data) +``` + +3. **Querying the variable catalog**: +```julia +using SindbadCore +catalog = getVariableCatalog() +``` +""" +module SindbadCore + using Reexport: @reexport + @reexport using Reexport + @reexport using Pkg + @reexport using CodeTracking + @reexport using DataStructures: DataStructures + @reexport using Dates + # @reexport using Flatten: flatten, metaflatten, fieldnameflatten, parentnameflatten + @reexport using InteractiveUtils + @reexport using StaticArraysCore: StaticArray, SVector, MArray, SizedArray + @reexport using TypedTables: Table + @reexport using Accessors: @set + @reexport using StatsBase + @reexport using NaNStatistics + using Crayons + # @reexport using Crayons + + # create a tmp_ file for tracking the creation of new approaches. This is needed because precompiler is not consistently loading the newly created approaches. This file is appended every time a new model/approach is created which forces precompile in the next use of SindbadCore. + file_path = file_path = joinpath(@__DIR__, "tmp_precompile_placeholder.jl") + # Check if the file exists + if isfile(file_path) + # Include the file if it exists + include(file_path) + else + # Create a blank file if it does not exist + open(file_path, "w") do file + # Optionally, you can write some initial content + write(file, "# This is a blank file created by Sindbad module to keep track of newly added sindbad approaches/models which automatically updates this file and then forces precompilation to include the new models.\n") + end + println("Created a blank file: $file_path to track precompilation of new models and approaches") + end + + include("Types/Types.jl") + @reexport using .Types + include("utilsCore.jl") + include("sindbadVariableCatalog.jl") + include("modelTools.jl") + include("Models/Models.jl") + include("generateCode.jl") + @reexport using .Models + # ? maybe rename module, a shorter name? + include("Utilities/Utilities.jl") + @reexport using .Utilities + + # append the docstring of the LandEcosystem type to the docstring of the Sindbad module so that all the methods of the LandEcosystem type are included after the models have been described + @doc """ + LandEcosystem + + $(purpose(LandEcosystem)) + + # Methods + All subtypes of `LandEcosystem` must implement at least one of the following methods: + - `define`: Initialize arrays and variables + - `precompute`: Update variables with new realizations + - `compute`: Update model state in time + - `update`: Update pools within a single time step + + + # Example + ```julia + # Define a new model type + struct MyModel <: LandEcosystem end + + # Implement required methods + function define(params::MyModel, forcing, land, helpers) + # Initialize arrays and variables + return land + end + + function precompute(params::MyModel, forcing, land, helpers) + # Update variables with new realizations + return land + end + + function compute(params::MyModel, forcing, land, helpers) + # Update model state in time + return land + end + + function update(params::MyModel, forcing, land, helpers) + # Update pools within a single time step + return land + end + ``` + + --- + + # Extended help + $(methodsOf(Types.LandEcosystem)) + """ + Types.LandEcosystem + + include(joinpath(@__DIR__, "Types/docStringForTypes.jl")) +end diff --git a/src/Types/ArrayTypes.jl b/SindbadCore/src/Types/ArrayTypes.jl similarity index 100% rename from src/Types/ArrayTypes.jl rename to SindbadCore/src/Types/ArrayTypes.jl diff --git a/src/Types/ExperimentTypes.jl b/SindbadCore/src/Types/ExperimentTypes.jl similarity index 100% rename from src/Types/ExperimentTypes.jl rename to SindbadCore/src/Types/ExperimentTypes.jl diff --git a/src/Types/InputTypes.jl b/SindbadCore/src/Types/InputTypes.jl similarity index 100% rename from src/Types/InputTypes.jl rename to SindbadCore/src/Types/InputTypes.jl diff --git a/src/Types/LandTypes.jl b/SindbadCore/src/Types/LandTypes.jl similarity index 100% rename from src/Types/LandTypes.jl rename to SindbadCore/src/Types/LandTypes.jl diff --git a/src/Types/LongTuple.jl b/SindbadCore/src/Types/LongTuple.jl similarity index 100% rename from src/Types/LongTuple.jl rename to SindbadCore/src/Types/LongTuple.jl diff --git a/src/Types/MLTypes.jl b/SindbadCore/src/Types/MLTypes.jl similarity index 100% rename from src/Types/MLTypes.jl rename to SindbadCore/src/Types/MLTypes.jl diff --git a/src/Types/MetricsTypes.jl b/SindbadCore/src/Types/MetricsTypes.jl similarity index 100% rename from src/Types/MetricsTypes.jl rename to SindbadCore/src/Types/MetricsTypes.jl diff --git a/src/Types/ModelTypes.jl b/SindbadCore/src/Types/ModelTypes.jl similarity index 100% rename from src/Types/ModelTypes.jl rename to SindbadCore/src/Types/ModelTypes.jl diff --git a/src/Types/OptimizationTypes.jl b/SindbadCore/src/Types/OptimizationTypes.jl similarity index 100% rename from src/Types/OptimizationTypes.jl rename to SindbadCore/src/Types/OptimizationTypes.jl diff --git a/src/Types/SpinupTypes.jl b/SindbadCore/src/Types/SpinupTypes.jl similarity index 100% rename from src/Types/SpinupTypes.jl rename to SindbadCore/src/Types/SpinupTypes.jl diff --git a/src/Types/TimeTypes.jl b/SindbadCore/src/Types/TimeTypes.jl similarity index 100% rename from src/Types/TimeTypes.jl rename to SindbadCore/src/Types/TimeTypes.jl diff --git a/src/Types/Types.jl b/SindbadCore/src/Types/Types.jl similarity index 100% rename from src/Types/Types.jl rename to SindbadCore/src/Types/Types.jl diff --git a/src/Types/TypesFunctions.jl b/SindbadCore/src/Types/TypesFunctions.jl similarity index 98% rename from src/Types/TypesFunctions.jl rename to SindbadCore/src/Types/TypesFunctions.jl index a74ffcb3e..c419073a3 100644 --- a/src/Types/TypesFunctions.jl +++ b/SindbadCore/src/Types/TypesFunctions.jl @@ -21,7 +21,7 @@ Returns all defined (and optionally internal) objects in the SINDBAD framework. # Example ```julia # Get all defined types in the SINDBAD framework -defined_types = getSindbadDefinitions(Sindbad, Type) +defined_types = getSindbadDefinitions(SindbadCore, Type) ``` """ function getSindbadDefinitions(sindbad_module, what_to_get; internal_only=true) @@ -106,10 +106,10 @@ methodsOf(LandEcosystem; ds=", ", bullet=" * ") methodsOf(LandEcosystem; is_subtype=true) # Display types in a module -methodsOf(Sindbad) +methodsOf(SindbadCore) # Display specific types in a module -methodsOf(Sindbad; the_type=Function) +methodsOf(SindbadCore; the_type=Function) ``` # Extended help diff --git a/src/Types/docStringForTypes.jl b/SindbadCore/src/Types/docStringForTypes.jl similarity index 93% rename from src/Types/docStringForTypes.jl rename to SindbadCore/src/Types/docStringForTypes.jl index c09fed978..5a058dfb8 100644 --- a/src/Types/docStringForTypes.jl +++ b/SindbadCore/src/Types/docStringForTypes.jl @@ -27,7 +27,7 @@ Abstract type for all array types in SINDBAD """ -Sindbad.Types.ArrayTypes +SindbadCore.Types.ArrayTypes @doc """ @@ -52,7 +52,7 @@ Abstract type for internal model array types in SINDBAD """ -Sindbad.Types.ModelArrayType +SindbadCore.Types.ModelArrayType @doc """ @@ -66,7 +66,7 @@ Use standard Julia arrays for model variables """ -Sindbad.Types.ModelArrayArray +SindbadCore.Types.ModelArrayArray @doc """ @@ -80,7 +80,7 @@ Use StaticArrays for model variables """ -Sindbad.Types.ModelArrayStaticArray +SindbadCore.Types.ModelArrayStaticArray @doc """ @@ -94,7 +94,7 @@ Use array views for model variables """ -Sindbad.Types.ModelArrayView +SindbadCore.Types.ModelArrayView @doc """ @@ -120,7 +120,7 @@ Abstract type for output array types in SINDBAD """ -Sindbad.Types.OutputArrayType +SindbadCore.Types.OutputArrayType @doc """ @@ -134,7 +134,7 @@ Use standard Julia arrays for output """ -Sindbad.Types.OutputArray +SindbadCore.Types.OutputArray @doc """ @@ -148,7 +148,7 @@ Use MArray for output """ -Sindbad.Types.OutputMArray +SindbadCore.Types.OutputMArray @doc """ @@ -162,7 +162,7 @@ Use SizedArray for output """ -Sindbad.Types.OutputSizedArray +SindbadCore.Types.OutputSizedArray @doc """ @@ -176,7 +176,7 @@ Use YAXArray for output """ -Sindbad.Types.OutputYAXArray +SindbadCore.Types.OutputYAXArray @doc """ @@ -227,7 +227,7 @@ Abstract type for model run flags and experimental setup and simulations in SIND """ -Sindbad.Types.ExperimentTypes +SindbadCore.Types.ExperimentTypes @doc """ @@ -253,7 +253,7 @@ Abstract type for model output strategies in SINDBAD """ -Sindbad.Types.OutputStrategy +SindbadCore.Types.OutputStrategy @doc """ @@ -267,7 +267,7 @@ Disable output of all model variables """ -Sindbad.Types.DoNotOutputAll +SindbadCore.Types.DoNotOutputAll @doc """ @@ -281,7 +281,7 @@ Save output variables in separate files """ -Sindbad.Types.DoNotSaveSingleFile +SindbadCore.Types.DoNotSaveSingleFile @doc """ @@ -295,7 +295,7 @@ Enable output of all model variables """ -Sindbad.Types.DoOutputAll +SindbadCore.Types.DoOutputAll @doc """ @@ -309,7 +309,7 @@ Save all output variables in a single file """ -Sindbad.Types.DoSaveSingleFile +SindbadCore.Types.DoSaveSingleFile @doc """ @@ -333,7 +333,7 @@ Abstract type for using different parallelization packages in SINDBAD """ -Sindbad.Types.ParallelizationPackage +SindbadCore.Types.ParallelizationPackage @doc """ @@ -347,7 +347,7 @@ Use Qbmap for parallelization """ -Sindbad.Types.QbmapParallelization +SindbadCore.Types.QbmapParallelization @doc """ @@ -361,7 +361,7 @@ Use Julia threads for parallelization """ -Sindbad.Types.ThreadsParallelization +SindbadCore.Types.ThreadsParallelization @doc """ @@ -403,7 +403,7 @@ Abstract type for model run configuration flags in SINDBAD """ -Sindbad.Types.RunFlag +SindbadCore.Types.RunFlag @doc """ @@ -417,7 +417,7 @@ Enable cost calculation between model output and observations """ -Sindbad.Types.DoCalcCost +SindbadCore.Types.DoCalcCost @doc """ @@ -431,7 +431,7 @@ Enable model debugging mode """ -Sindbad.Types.DoDebugModel +SindbadCore.Types.DoDebugModel @doc """ @@ -445,7 +445,7 @@ Enable filtering of NaN values in spatial data """ -Sindbad.Types.DoFilterNanPixels +SindbadCore.Types.DoFilterNanPixels @doc """ @@ -459,7 +459,7 @@ Enable inline updates of model state """ -Sindbad.Types.DoInlineUpdate +SindbadCore.Types.DoInlineUpdate @doc """ @@ -473,7 +473,7 @@ Disable cost calculation between model output and observations """ -Sindbad.Types.DoNotCalcCost +SindbadCore.Types.DoNotCalcCost @doc """ @@ -487,7 +487,7 @@ Disable model debugging mode """ -Sindbad.Types.DoNotDebugModel +SindbadCore.Types.DoNotDebugModel @doc """ @@ -501,7 +501,7 @@ Disable filtering of NaN values in spatial data """ -Sindbad.Types.DoNotFilterNanPixels +SindbadCore.Types.DoNotFilterNanPixels @doc """ @@ -515,7 +515,7 @@ Disable inline updates of model state """ -Sindbad.Types.DoNotInlineUpdate +SindbadCore.Types.DoNotInlineUpdate @doc """ @@ -529,7 +529,7 @@ Disable forward model run """ -Sindbad.Types.DoNotRunForward +SindbadCore.Types.DoNotRunForward @doc """ @@ -543,7 +543,7 @@ Disable model parameter optimization """ -Sindbad.Types.DoNotRunOptimization +SindbadCore.Types.DoNotRunOptimization @doc """ @@ -557,7 +557,7 @@ Disable saving of model information """ -Sindbad.Types.DoNotSaveInfo +SindbadCore.Types.DoNotSaveInfo @doc """ @@ -571,7 +571,7 @@ Disable terrestrial ecosystem model spinup """ -Sindbad.Types.DoNotSpinupTEM +SindbadCore.Types.DoNotSpinupTEM @doc """ @@ -585,7 +585,7 @@ Disable storing of spinup results """ -Sindbad.Types.DoNotStoreSpinup +SindbadCore.Types.DoNotStoreSpinup @doc """ @@ -599,7 +599,7 @@ Disable forward mode automatic differentiation """ -Sindbad.Types.DoNotUseForwardDiff +SindbadCore.Types.DoNotUseForwardDiff @doc """ @@ -613,7 +613,7 @@ Enable forward model run """ -Sindbad.Types.DoRunForward +SindbadCore.Types.DoRunForward @doc """ @@ -627,7 +627,7 @@ Enable model parameter optimization """ -Sindbad.Types.DoRunOptimization +SindbadCore.Types.DoRunOptimization @doc """ @@ -641,7 +641,7 @@ Enable saving of model information """ -Sindbad.Types.DoSaveInfo +SindbadCore.Types.DoSaveInfo @doc """ @@ -655,7 +655,7 @@ Enable terrestrial ecosystem model spinup """ -Sindbad.Types.DoSpinupTEM +SindbadCore.Types.DoSpinupTEM @doc """ @@ -669,7 +669,7 @@ Enable storing of spinup results """ -Sindbad.Types.DoStoreSpinup +SindbadCore.Types.DoStoreSpinup @doc """ @@ -683,7 +683,7 @@ Enable forward mode automatic differentiation """ -Sindbad.Types.DoUseForwardDiff +SindbadCore.Types.DoUseForwardDiff @doc """ @@ -725,7 +725,7 @@ Abstract type for input data and processing related options in SINDBAD """ -Sindbad.Types.InputTypes +SindbadCore.Types.InputTypes @doc """ @@ -749,7 +749,7 @@ Abstract type for input data backends in SINDBAD """ -Sindbad.Types.DataFormatBackend +SindbadCore.Types.DataFormatBackend @doc """ @@ -763,7 +763,7 @@ Use NetCDF format for input data """ -Sindbad.Types.BackendNetcdf +SindbadCore.Types.BackendNetcdf @doc """ @@ -777,7 +777,7 @@ Use Zarr format for input data """ -Sindbad.Types.BackendZarr +SindbadCore.Types.BackendZarr @doc """ @@ -791,7 +791,7 @@ Forcing variable with time dimension """ -Sindbad.Types.ForcingWithTime +SindbadCore.Types.ForcingWithTime @doc """ @@ -805,7 +805,7 @@ Forcing variable without time dimension """ -Sindbad.Types.ForcingWithoutTime +SindbadCore.Types.ForcingWithoutTime @doc """ @@ -831,7 +831,7 @@ Abstract type for input data array types in SINDBAD """ -Sindbad.Types.InputArrayBackend +SindbadCore.Types.InputArrayBackend @doc """ @@ -845,7 +845,7 @@ Use standard Julia arrays for input data """ -Sindbad.Types.InputArray +SindbadCore.Types.InputArray @doc """ @@ -859,7 +859,7 @@ Use keyed arrays for input data """ -Sindbad.Types.InputKeyedArray +SindbadCore.Types.InputKeyedArray @doc """ @@ -873,7 +873,7 @@ Use named dimension arrays for input data """ -Sindbad.Types.InputNamedDimsArray +SindbadCore.Types.InputNamedDimsArray @doc """ @@ -887,7 +887,7 @@ Use YAXArray for input data """ -Sindbad.Types.InputYaxArray +SindbadCore.Types.InputYaxArray @doc """ @@ -917,7 +917,7 @@ Abstract type for spatial subsetting methods in SINDBAD """ -Sindbad.Types.SpatialSubsetter +SindbadCore.Types.SpatialSubsetter @doc """ @@ -931,7 +931,7 @@ Use site ID (all caps) for spatial subsetting """ -Sindbad.Types.SpaceID +SindbadCore.Types.SpaceID @doc """ @@ -945,7 +945,7 @@ Use site ID (capitalized) for spatial subsetting """ -Sindbad.Types.SpaceId +SindbadCore.Types.SpaceId @doc """ @@ -959,7 +959,7 @@ Use site ID for spatial subsetting """ -Sindbad.Types.Spaceid +SindbadCore.Types.Spaceid @doc """ @@ -973,7 +973,7 @@ Use latitude for spatial subsetting """ -Sindbad.Types.Spacelat +SindbadCore.Types.Spacelat @doc """ @@ -987,7 +987,7 @@ Use full latitude for spatial subsetting """ -Sindbad.Types.Spacelatitude +SindbadCore.Types.Spacelatitude @doc """ @@ -1001,7 +1001,7 @@ Use longitude for spatial subsetting """ -Sindbad.Types.Spacelon +SindbadCore.Types.Spacelon @doc """ @@ -1015,7 +1015,7 @@ Use full longitude for spatial subsetting """ -Sindbad.Types.Spacelongitude +SindbadCore.Types.Spacelongitude @doc """ @@ -1029,7 +1029,7 @@ Use site location for spatial subsetting """ -Sindbad.Types.Spacesite +SindbadCore.Types.Spacesite @doc """ @@ -1062,7 +1062,7 @@ Abstract type for land related types that are typically used in preparing object """ -Sindbad.Types.LandTypes +SindbadCore.Types.LandTypes @doc """ @@ -1091,7 +1091,7 @@ Abstract type for preallocated land helpers types in prepTEM of SINDBAD """ -Sindbad.Types.PreAlloc +SindbadCore.Types.PreAlloc @doc """ @@ -1105,7 +1105,7 @@ use a preallocated array for model output """ -Sindbad.Types.PreAllocArray +SindbadCore.Types.PreAllocArray @doc """ @@ -1119,7 +1119,7 @@ use a preallocated array to output all land variables """ -Sindbad.Types.PreAllocArrayAll +SindbadCore.Types.PreAllocArrayAll @doc """ @@ -1133,7 +1133,7 @@ use a preallocated array for finite difference (FD) hybrid experiments """ -Sindbad.Types.PreAllocArrayFD +SindbadCore.Types.PreAllocArrayFD @doc """ @@ -1147,7 +1147,7 @@ use arrays of nThreads size for land model output for replicates of multiple thr """ -Sindbad.Types.PreAllocArrayMT +SindbadCore.Types.PreAllocArrayMT @doc """ @@ -1161,7 +1161,7 @@ save output as a stacked vector of land using map over temporal dimension """ -Sindbad.Types.PreAllocStacked +SindbadCore.Types.PreAllocStacked @doc """ @@ -1175,7 +1175,7 @@ save land output as a preallocated vector for time series of land """ -Sindbad.Types.PreAllocTimeseries +SindbadCore.Types.PreAllocTimeseries @doc """ @@ -1189,7 +1189,7 @@ use YAX arrays for model output """ -Sindbad.Types.PreAllocYAXArray +SindbadCore.Types.PreAllocYAXArray @doc """ @@ -1218,7 +1218,7 @@ Abstract type for types in machine learning related methods in SINDBAD """ -Sindbad.Types.MLTypes +SindbadCore.Types.MLTypes @doc """ @@ -1246,7 +1246,7 @@ Abstract type for automatic differentiation or finite differences for gradient c """ -Sindbad.Types.MLGradType +SindbadCore.Types.MLGradType @doc """ @@ -1260,7 +1260,7 @@ Use Enzyme.jl for automatic differentiation """ -Sindbad.Types.EnzymeGrad +SindbadCore.Types.EnzymeGrad @doc """ @@ -1274,7 +1274,7 @@ Use FiniteDiff.jl for finite difference calculations """ -Sindbad.Types.FiniteDiffGrad +SindbadCore.Types.FiniteDiffGrad @doc """ @@ -1288,7 +1288,7 @@ Use FiniteDifferences.jl for finite difference calculations """ -Sindbad.Types.FiniteDifferencesGrad +SindbadCore.Types.FiniteDifferencesGrad @doc """ @@ -1302,7 +1302,7 @@ Use ForwardDiff.jl for automatic differentiation """ -Sindbad.Types.ForwardDiffGrad +SindbadCore.Types.ForwardDiffGrad @doc """ @@ -1316,7 +1316,7 @@ Use PolyesterForwardDiff.jl for automatic differentiation """ -Sindbad.Types.PolyesterForwardDiffGrad +SindbadCore.Types.PolyesterForwardDiffGrad @doc """ @@ -1330,7 +1330,7 @@ Use Zygote.jl for automatic differentiation """ -Sindbad.Types.ZygoteGrad +SindbadCore.Types.ZygoteGrad @doc """ @@ -1385,7 +1385,7 @@ Abstract type for performance metrics and cost calculation methods in SINDBAD """ -Sindbad.Types.MetricTypes +SindbadCore.Types.MetricTypes @doc """ @@ -1409,7 +1409,7 @@ Abstract type for data aggregation order in SINDBAD """ -Sindbad.Types.DataAggrOrder +SindbadCore.Types.DataAggrOrder @doc """ @@ -1423,7 +1423,7 @@ Aggregate data first over space, then over time """ -Sindbad.Types.SpaceTime +SindbadCore.Types.SpaceTime @doc """ @@ -1437,7 +1437,7 @@ Aggregate data first over time, then over space """ -Sindbad.Types.TimeSpace +SindbadCore.Types.TimeSpace @doc """ @@ -1482,7 +1482,7 @@ Abstract type for performance metrics in SINDBAD """ -Sindbad.Types.PerfMetric +SindbadCore.Types.PerfMetric @doc """ @@ -1496,7 +1496,7 @@ Mean Squared Error: Measures the average squared difference between predicted an """ -Sindbad.Types.MSE +SindbadCore.Types.MSE @doc """ @@ -1510,7 +1510,7 @@ Normalized Absolute Mean Error with 1/R scaling: Measures the absolute differenc """ -Sindbad.Types.NAME1R +SindbadCore.Types.NAME1R @doc """ @@ -1524,7 +1524,7 @@ Normalized Mean Absolute Error with 1/R scaling: Measures the average absolute e """ -Sindbad.Types.NMAE1R +SindbadCore.Types.NMAE1R @doc """ @@ -1538,7 +1538,7 @@ Normalized Nash-Sutcliffe Efficiency: Measures model performance relative to the """ -Sindbad.Types.NNSE +SindbadCore.Types.NNSE @doc """ @@ -1552,7 +1552,7 @@ Inverse Normalized Nash-Sutcliffe Efficiency: Inverse of NNSE for minimization p """ -Sindbad.Types.NNSEInv +SindbadCore.Types.NNSEInv @doc """ @@ -1566,7 +1566,7 @@ Normalized Nash-Sutcliffe Efficiency with uncertainty: Incorporates observation """ -Sindbad.Types.NNSEσ +SindbadCore.Types.NNSEσ @doc """ @@ -1580,7 +1580,7 @@ Inverse Normalized Nash-Sutcliffe Efficiency with uncertainty: Inverse of NNSEσ """ -Sindbad.Types.NNSEσInv +SindbadCore.Types.NNSEσInv @doc """ @@ -1594,7 +1594,7 @@ Normalized Pearson Correlation: Measures linear correlation between predictions """ -Sindbad.Types.NPcor +SindbadCore.Types.NPcor @doc """ @@ -1608,7 +1608,7 @@ Inverse Normalized Pearson Correlation: Inverse of NPcor for minimization proble """ -Sindbad.Types.NPcorInv +SindbadCore.Types.NPcorInv @doc """ @@ -1622,7 +1622,7 @@ Nash-Sutcliffe Efficiency: Measures model performance relative to the mean of ob """ -Sindbad.Types.NSE +SindbadCore.Types.NSE @doc """ @@ -1636,7 +1636,7 @@ Inverse Nash-Sutcliffe Efficiency: Inverse of NSE for minimization problems """ -Sindbad.Types.NSEInv +SindbadCore.Types.NSEInv @doc """ @@ -1650,7 +1650,7 @@ Nash-Sutcliffe Efficiency with uncertainty: Incorporates observation uncertainty """ -Sindbad.Types.NSEσ +SindbadCore.Types.NSEσ @doc """ @@ -1664,7 +1664,7 @@ Inverse Nash-Sutcliffe Efficiency with uncertainty: Inverse of NSEσ for minimiz """ -Sindbad.Types.NSEσInv +SindbadCore.Types.NSEσInv @doc """ @@ -1678,7 +1678,7 @@ Normalized Spearman Correlation: Measures monotonic relationship between predict """ -Sindbad.Types.NScor +SindbadCore.Types.NScor @doc """ @@ -1692,7 +1692,7 @@ Inverse Normalized Spearman Correlation: Inverse of NScor for minimization probl """ -Sindbad.Types.NScorInv +SindbadCore.Types.NScorInv @doc """ @@ -1706,7 +1706,7 @@ Pearson Correlation: Measures linear correlation between predictions and observa """ -Sindbad.Types.Pcor +SindbadCore.Types.Pcor @doc """ @@ -1720,7 +1720,7 @@ Squared Pearson Correlation: Measures the strength of linear relationship betwee """ -Sindbad.Types.Pcor2 +SindbadCore.Types.Pcor2 @doc """ @@ -1734,7 +1734,7 @@ Inverse Squared Pearson Correlation: Inverse of Pcor2 for minimization problems """ -Sindbad.Types.Pcor2Inv +SindbadCore.Types.Pcor2Inv @doc """ @@ -1748,7 +1748,7 @@ Inverse Pearson Correlation: Inverse of Pcor for minimization problems """ -Sindbad.Types.PcorInv +SindbadCore.Types.PcorInv @doc """ @@ -1762,7 +1762,7 @@ Spearman Correlation: Measures monotonic relationship between predictions and ob """ -Sindbad.Types.Scor +SindbadCore.Types.Scor @doc """ @@ -1776,7 +1776,7 @@ Squared Spearman Correlation: Measures the strength of monotonic relationship be """ -Sindbad.Types.Scor2 +SindbadCore.Types.Scor2 @doc """ @@ -1790,7 +1790,7 @@ Inverse Squared Spearman Correlation: Inverse of Scor2 for minimization problems """ -Sindbad.Types.Scor2Inv +SindbadCore.Types.Scor2Inv @doc """ @@ -1804,7 +1804,7 @@ Inverse Spearman Correlation: Inverse of Scor for minimization problems """ -Sindbad.Types.ScorInv +SindbadCore.Types.ScorInv @doc """ @@ -1818,7 +1818,7 @@ Abstract type for spatial data aggregation methods in SINDBAD """ -Sindbad.Types.SpatialDataAggr +SindbadCore.Types.SpatialDataAggr @doc """ @@ -1844,7 +1844,7 @@ Abstract type for spatial metric aggregation methods in SINDBAD """ -Sindbad.Types.SpatialMetricAggr +SindbadCore.Types.SpatialMetricAggr @doc """ @@ -1858,7 +1858,7 @@ Take maximum value across spatial dimensions """ -Sindbad.Types.MetricMaximum +SindbadCore.Types.MetricMaximum @doc """ @@ -1872,7 +1872,7 @@ Take minimum value across spatial dimensions """ -Sindbad.Types.MetricMinimum +SindbadCore.Types.MetricMinimum @doc """ @@ -1886,7 +1886,7 @@ Apply spatial aggregation to metrics """ -Sindbad.Types.MetricSpatial +SindbadCore.Types.MetricSpatial @doc """ @@ -1900,7 +1900,7 @@ Sum values across spatial dimensions """ -Sindbad.Types.MetricSum +SindbadCore.Types.MetricSum @doc """ @@ -2246,7 +2246,7 @@ Root allocation is further divided into fine (cf2Root) and coarse roots (cf2Root """ -Sindbad.Types.ModelTypes +SindbadCore.Types.ModelTypes @doc """ @@ -2260,7 +2260,7 @@ Enable error catching during model execution """ -Sindbad.Types.DoCatchModelErrors +SindbadCore.Types.DoCatchModelErrors @doc """ @@ -2274,7 +2274,7 @@ Disable error catching during model execution """ -Sindbad.Types.DoNotCatchModelErrors +SindbadCore.Types.DoNotCatchModelErrors @doc """ @@ -2325,7 +2325,7 @@ Abstract type for optimization related functions and methods in SINDBAD """ -Sindbad.Types.OptimizationTypes +SindbadCore.Types.OptimizationTypes @doc """ @@ -2351,7 +2351,7 @@ Abstract type for cost calculation methods in SINDBAD """ -Sindbad.Types.CostMethod +SindbadCore.Types.CostMethod @doc """ @@ -2365,7 +2365,7 @@ cost calculation between model output and observations """ -Sindbad.Types.CostModelObs +SindbadCore.Types.CostModelObs @doc """ @@ -2379,7 +2379,7 @@ cost calculation between land model output and time series observations """ -Sindbad.Types.CostModelObsLandTS +SindbadCore.Types.CostModelObsLandTS @doc """ @@ -2393,7 +2393,7 @@ multi-threaded cost calculation between model output and observations """ -Sindbad.Types.CostModelObsMT +SindbadCore.Types.CostModelObsMT @doc """ @@ -2407,7 +2407,7 @@ cost calculation between model output, observations, and priors. NOTE THAT THIS """ -Sindbad.Types.CostModelObsPriors +SindbadCore.Types.CostModelObsPriors @doc """ @@ -2432,7 +2432,7 @@ Abstract type for global sensitivity analysis methods in SINDBAD """ -Sindbad.Types.GSAMethod +SindbadCore.Types.GSAMethod @doc """ @@ -2446,7 +2446,7 @@ Morris method for global sensitivity analysis """ -Sindbad.Types.GSAMorris +SindbadCore.Types.GSAMorris @doc """ @@ -2460,7 +2460,7 @@ Sobol method for global sensitivity analysis """ -Sindbad.Types.GSASobol +SindbadCore.Types.GSASobol @doc """ @@ -2474,7 +2474,7 @@ Sobol method with derivative-based measures for global sensitivity analysis """ -Sindbad.Types.GSASobolDM +SindbadCore.Types.GSASobolDM @doc """ @@ -2511,7 +2511,7 @@ Abstract type for optimization methods in SINDBAD """ -Sindbad.Types.OptimizationMethod +SindbadCore.Types.OptimizationMethod @doc """ @@ -2525,7 +2525,7 @@ Bayesian Optimization using Matern 5/2 kernel with Automatic Relevance Determina """ -Sindbad.Types.BayesOptKMaternARD5 +SindbadCore.Types.BayesOptKMaternARD5 @doc """ @@ -2539,7 +2539,7 @@ Covariance Matrix Adaptation Evolution Strategy (CMA-ES) from CMAEvolutionStrate """ -Sindbad.Types.CMAEvolutionStrategyCMAES +SindbadCore.Types.CMAEvolutionStrategyCMAES @doc """ @@ -2553,7 +2553,7 @@ Evolutionary version of CMA-ES optimization from Evolutionary.jl """ -Sindbad.Types.EvolutionaryCMAES +SindbadCore.Types.EvolutionaryCMAES @doc """ @@ -2567,7 +2567,7 @@ Broyden-Fletcher-Goldfarb-Shanno (BFGS) from Optim.jl """ -Sindbad.Types.OptimBFGS +SindbadCore.Types.OptimBFGS @doc """ @@ -2581,7 +2581,7 @@ Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) from Optim.jl """ -Sindbad.Types.OptimLBFGS +SindbadCore.Types.OptimLBFGS @doc """ @@ -2595,7 +2595,7 @@ Black Box Optimization with adaptive parameters from Optimization.jl """ -Sindbad.Types.OptimizationBBOadaptive +SindbadCore.Types.OptimizationBBOadaptive @doc """ @@ -2609,7 +2609,7 @@ Black Box Optimization using Natural Evolution Strategy (xNES) from Optimization """ -Sindbad.Types.OptimizationBBOxnes +SindbadCore.Types.OptimizationBBOxnes @doc """ @@ -2623,7 +2623,7 @@ BFGS optimization with box constraints from Optimization.jl """ -Sindbad.Types.OptimizationBFGS +SindbadCore.Types.OptimizationBFGS @doc """ @@ -2637,7 +2637,7 @@ Gradient descent optimization with box constraints from Optimization.jl """ -Sindbad.Types.OptimizationFminboxGradientDescent +SindbadCore.Types.OptimizationFminboxGradientDescent @doc """ @@ -2651,7 +2651,7 @@ Gradient descent optimization with box constraints using forward differentiation """ -Sindbad.Types.OptimizationFminboxGradientDescentFD +SindbadCore.Types.OptimizationFminboxGradientDescentFD @doc """ @@ -2665,7 +2665,7 @@ Global CMA-ES optimization with default settings from Optimization.jl """ -Sindbad.Types.OptimizationGCMAESDef +SindbadCore.Types.OptimizationGCMAESDef @doc """ @@ -2679,7 +2679,7 @@ Global CMA-ES optimization using forward differentiation from Optimization.jl """ -Sindbad.Types.OptimizationGCMAESFD +SindbadCore.Types.OptimizationGCMAESFD @doc """ @@ -2693,7 +2693,7 @@ Multi-start optimization to find global optimum from Optimization.jl """ -Sindbad.Types.OptimizationMultistartOptimization +SindbadCore.Types.OptimizationMultistartOptimization @doc """ @@ -2707,7 +2707,7 @@ Nelder-Mead simplex optimization method from Optimization.jl """ -Sindbad.Types.OptimizationNelderMead +SindbadCore.Types.OptimizationNelderMead @doc """ @@ -2721,7 +2721,7 @@ Quadratic Direct optimization method from Optimization.jl """ -Sindbad.Types.OptimizationQuadDirect +SindbadCore.Types.OptimizationQuadDirect @doc """ @@ -2746,7 +2746,7 @@ Abstract type for parameter scaling methods in SINDBAD """ -Sindbad.Types.ParameterScaling +SindbadCore.Types.ParameterScaling @doc """ @@ -2760,7 +2760,7 @@ Scale parameters relative to their bounds """ -Sindbad.Types.ScaleBounds +SindbadCore.Types.ScaleBounds @doc """ @@ -2774,7 +2774,7 @@ Scale parameters relative to default values """ -Sindbad.Types.ScaleDefault +SindbadCore.Types.ScaleDefault @doc """ @@ -2788,7 +2788,7 @@ No parameter scaling applied """ -Sindbad.Types.ScaleNone +SindbadCore.Types.ScaleNone @doc """ @@ -2830,7 +2830,7 @@ Abstract type for model spinup related functions and methods in SINDBAD """ -Sindbad.Types.SpinupTypes +SindbadCore.Types.SpinupTypes @doc """ @@ -2869,7 +2869,7 @@ Abstract type for model spinup modes in SINDBAD """ -Sindbad.Types.SpinupMode +SindbadCore.Types.SpinupMode @doc """ @@ -2883,7 +2883,7 @@ Use all forward models for spinup """ -Sindbad.Types.AllForwardModels +SindbadCore.Types.AllForwardModels @doc """ @@ -2897,7 +2897,7 @@ scale carbon pools using diagnostic scalars for ηH and c_remain """ -Sindbad.Types.EtaScaleA0H +SindbadCore.Types.EtaScaleA0H @doc """ @@ -2911,7 +2911,7 @@ scale carbon pools of CWD (cLitSlow) using ηH and set vegetation pools to c_rem """ -Sindbad.Types.EtaScaleA0HCWD +SindbadCore.Types.EtaScaleA0HCWD @doc """ @@ -2925,7 +2925,7 @@ scale carbon pools using diagnostic scalars for ηH and ηA """ -Sindbad.Types.EtaScaleAH +SindbadCore.Types.EtaScaleAH @doc """ @@ -2939,7 +2939,7 @@ scale carbon pools of CWD (cLitSlow) using ηH and scale vegetation pools by ηA """ -Sindbad.Types.EtaScaleAHCWD +SindbadCore.Types.EtaScaleAHCWD @doc """ @@ -2953,7 +2953,7 @@ use a fixed-point nonlinear solver with trust region for carbon pools (cEco) """ -Sindbad.Types.NlsolveFixedpointTrustregionCEco +SindbadCore.Types.NlsolveFixedpointTrustregionCEco @doc """ @@ -2967,7 +2967,7 @@ use a fixed-point nonlinear solver with trust region for both cEco and TWS """ -Sindbad.Types.NlsolveFixedpointTrustregionCEcoTWS +SindbadCore.Types.NlsolveFixedpointTrustregionCEcoTWS @doc """ @@ -2981,7 +2981,7 @@ use a fixed-point nonlinearsolver with trust region for Total Water Storage (TWS """ -Sindbad.Types.NlsolveFixedpointTrustregionTWS +SindbadCore.Types.NlsolveFixedpointTrustregionTWS @doc """ @@ -2995,7 +2995,7 @@ use the AutoVern7(Rodas5) method from DifferentialEquations.jl for solving ODEs """ -Sindbad.Types.ODEAutoTsit5Rodas5 +SindbadCore.Types.ODEAutoTsit5Rodas5 @doc """ @@ -3009,7 +3009,7 @@ use the DP5 method from DifferentialEquations.jl for solving ODEs """ -Sindbad.Types.ODEDP5 +SindbadCore.Types.ODEDP5 @doc """ @@ -3023,7 +3023,7 @@ use the Tsit5 method from DifferentialEquations.jl for solving ODEs """ -Sindbad.Types.ODETsit5 +SindbadCore.Types.ODETsit5 @doc """ @@ -3037,7 +3037,7 @@ use the SteadyState solver with DynamicSS and Tsit5 methods """ -Sindbad.Types.SSPDynamicSSTsit5 +SindbadCore.Types.SSPDynamicSSTsit5 @doc """ @@ -3051,7 +3051,7 @@ use the SteadyState solver with SSRootfind method """ -Sindbad.Types.SSPSSRootfind +SindbadCore.Types.SSPSSRootfind @doc """ @@ -3065,7 +3065,7 @@ run only the models selected for spinup in the model structure """ -Sindbad.Types.SelSpinupModels +SindbadCore.Types.SelSpinupModels @doc """ @@ -3079,7 +3079,7 @@ Spinup spinup_mode for Total Water Storage (TWS) """ -Sindbad.Types.Spinup_TWS +SindbadCore.Types.Spinup_TWS @doc """ @@ -3093,7 +3093,7 @@ Spinup spinup_mode for cEco """ -Sindbad.Types.Spinup_cEco +SindbadCore.Types.Spinup_cEco @doc """ @@ -3107,7 +3107,7 @@ Spinup spinup_mode for cEco and TWS """ -Sindbad.Types.Spinup_cEco_TWS +SindbadCore.Types.Spinup_cEco_TWS @doc """ @@ -3121,7 +3121,7 @@ Basic Spinup sequence without time aggregation """ -Sindbad.Types.SpinupSequence +SindbadCore.Types.SpinupSequence @doc """ @@ -3135,7 +3135,7 @@ Spinup sequence with time aggregation for corresponding forcingtime series """ -Sindbad.Types.SpinupSequenceWithAggregator +SindbadCore.Types.SpinupSequenceWithAggregator @doc """ @@ -3184,7 +3184,7 @@ Abstract type for implementing time subset and aggregation types in SINDBAD """ -Sindbad.Types.TimeTypes +SindbadCore.Types.TimeTypes @doc """ @@ -3231,7 +3231,7 @@ Abstract type for time aggregation methods in SINDBAD """ -Sindbad.Types.TimeAggregation +SindbadCore.Types.TimeAggregation @doc """ @@ -3245,7 +3245,7 @@ aggregation/slicing to include all years """ -Sindbad.Types.TimeAllYears +SindbadCore.Types.TimeAllYears @doc """ @@ -3259,7 +3259,7 @@ use array-based time aggregation """ -Sindbad.Types.TimeArray +SindbadCore.Types.TimeArray @doc """ @@ -3273,7 +3273,7 @@ aggregation to daily time steps """ -Sindbad.Types.TimeDay +SindbadCore.Types.TimeDay @doc """ @@ -3287,7 +3287,7 @@ aggregation to daily anomalies """ -Sindbad.Types.TimeDayAnomaly +SindbadCore.Types.TimeDayAnomaly @doc """ @@ -3301,7 +3301,7 @@ aggregation to daily IAV """ -Sindbad.Types.TimeDayIAV +SindbadCore.Types.TimeDayIAV @doc """ @@ -3315,7 +3315,7 @@ aggregation to daily MSC """ -Sindbad.Types.TimeDayMSC +SindbadCore.Types.TimeDayMSC @doc """ @@ -3329,7 +3329,7 @@ aggregation to daily MSC anomalies """ -Sindbad.Types.TimeDayMSCAnomaly +SindbadCore.Types.TimeDayMSCAnomaly @doc """ @@ -3343,7 +3343,7 @@ aggregation to time differences, e.g. monthly anomalies """ -Sindbad.Types.TimeDiff +SindbadCore.Types.TimeDiff @doc """ @@ -3357,7 +3357,7 @@ aggregation/slicing of the first year """ -Sindbad.Types.TimeFirstYear +SindbadCore.Types.TimeFirstYear @doc """ @@ -3371,7 +3371,7 @@ aggregation to hourly time steps """ -Sindbad.Types.TimeHour +SindbadCore.Types.TimeHour @doc """ @@ -3385,7 +3385,7 @@ aggregation to hourly anomalies """ -Sindbad.Types.TimeHourAnomaly +SindbadCore.Types.TimeHourAnomaly @doc """ @@ -3399,7 +3399,7 @@ aggregation to mean of hourly data over days """ -Sindbad.Types.TimeHourDayMean +SindbadCore.Types.TimeHourDayMean @doc """ @@ -3413,7 +3413,7 @@ aggregation using time indices, e.g., TimeFirstYear """ -Sindbad.Types.TimeIndexed +SindbadCore.Types.TimeIndexed @doc """ @@ -3427,7 +3427,7 @@ aggregation to mean over all time steps """ -Sindbad.Types.TimeMean +SindbadCore.Types.TimeMean @doc """ @@ -3441,7 +3441,7 @@ aggregation to monthly time steps """ -Sindbad.Types.TimeMonth +SindbadCore.Types.TimeMonth @doc """ @@ -3455,7 +3455,7 @@ aggregation to monthly anomalies """ -Sindbad.Types.TimeMonthAnomaly +SindbadCore.Types.TimeMonthAnomaly @doc """ @@ -3469,7 +3469,7 @@ aggregation to monthly IAV """ -Sindbad.Types.TimeMonthIAV +SindbadCore.Types.TimeMonthIAV @doc """ @@ -3483,7 +3483,7 @@ aggregation to monthly MSC """ -Sindbad.Types.TimeMonthMSC +SindbadCore.Types.TimeMonthMSC @doc """ @@ -3497,7 +3497,7 @@ aggregation to monthly MSC anomalies """ -Sindbad.Types.TimeMonthMSCAnomaly +SindbadCore.Types.TimeMonthMSCAnomaly @doc """ @@ -3511,7 +3511,7 @@ aggregation without time differences """ -Sindbad.Types.TimeNoDiff +SindbadCore.Types.TimeNoDiff @doc """ @@ -3525,7 +3525,7 @@ aggregation/slicing of a random year """ -Sindbad.Types.TimeRandomYear +SindbadCore.Types.TimeRandomYear @doc """ @@ -3539,7 +3539,7 @@ aggregation/slicing/selection of shuffled years """ -Sindbad.Types.TimeShuffleYears +SindbadCore.Types.TimeShuffleYears @doc """ @@ -3553,7 +3553,7 @@ aggregation to a sized array """ -Sindbad.Types.TimeSizedArray +SindbadCore.Types.TimeSizedArray @doc """ @@ -3567,7 +3567,7 @@ aggregation to yearly time steps """ -Sindbad.Types.TimeYear +SindbadCore.Types.TimeYear @doc """ @@ -3581,7 +3581,7 @@ aggregation to yearly anomalies """ -Sindbad.Types.TimeYearAnomaly +SindbadCore.Types.TimeYearAnomaly @doc """ @@ -3604,7 +3604,7 @@ Abstract type for machine learning models used in SINDBAD """ -Sindbad.Types.MLModelType +SindbadCore.Types.MLModelType @doc """ @@ -3618,7 +3618,7 @@ simple dense neural network model implemented in Flux.jl """ -Sindbad.Types.FluxDenseNN +SindbadCore.Types.FluxDenseNN @doc """ @@ -3641,7 +3641,7 @@ Abstract type for optimizers used for training ML models in SINDBAD """ -Sindbad.Types.MLOptimizerType +SindbadCore.Types.MLOptimizerType @doc """ @@ -3655,7 +3655,7 @@ Use Optimisers.jl Adam optimizer for training ML models in SINDBAD """ -Sindbad.Types.OptimisersAdam +SindbadCore.Types.OptimisersAdam @doc """ @@ -3678,7 +3678,7 @@ Abstract type for training a hybrid algorithm in SINDBAD """ -Sindbad.Types.MLTrainingType +SindbadCore.Types.MLTrainingType @doc """ @@ -3692,7 +3692,7 @@ Use a mixed gradient approach for training using gradient from multiple methods """ -Sindbad.Types.MixedGradient +SindbadCore.Types.MixedGradient @doc """ @@ -3706,7 +3706,7 @@ Use a split of the data to calculate the folds for cross-validation. The default """ -Sindbad.Types.CalcFoldFromSplit +SindbadCore.Types.CalcFoldFromSplit @doc """ @@ -3720,7 +3720,7 @@ Use precalculated data to load the folds for cross-validation. In this case, the """ -Sindbad.Types.LoadFoldFromFile +SindbadCore.Types.LoadFoldFromFile @doc """ @@ -3745,7 +3745,7 @@ Abstract type for activation functions used in ML models """ -Sindbad.Types.ActivationType +SindbadCore.Types.ActivationType @doc """ @@ -3759,7 +3759,7 @@ Use Flux.jl ReLU activation function """ -Sindbad.Types.FluxRelu +SindbadCore.Types.FluxRelu @doc """ @@ -3773,7 +3773,7 @@ Use Flux.jl Sigmoid activation function """ -Sindbad.Types.FluxSigmoid +SindbadCore.Types.FluxSigmoid @doc """ @@ -3787,7 +3787,7 @@ Use Flux.jl Tanh activation function """ -Sindbad.Types.FluxTanh +SindbadCore.Types.FluxTanh @doc """ @@ -3801,7 +3801,7 @@ Loss function using metrics between the predicted model and observation as defin """ -Sindbad.Types.LossModelObsML +SindbadCore.Types.LossModelObsML @doc """ @@ -3815,7 +3815,7 @@ Use a custom sigmoid activation function. In this case, the `k_σ` parameter in """ -Sindbad.Types.CustomSigmoid +SindbadCore.Types.CustomSigmoid @doc """ @@ -3829,5 +3829,5 @@ Use Optimisers.jl Descent optimizer for training ML models in SINDBAD """ -Sindbad.Types.OptimisersDescent +SindbadCore.Types.OptimisersDescent diff --git a/lib/SindbadUtils/src/SindbadUtils.jl b/SindbadCore/src/Utilities/Utilities.jl similarity index 64% rename from lib/SindbadUtils/src/SindbadUtils.jl rename to SindbadCore/src/Utilities/Utilities.jl index b1abd3ea8..cd00b16ae 100644 --- a/lib/SindbadUtils/src/SindbadUtils.jl +++ b/SindbadCore/src/Utilities/Utilities.jl @@ -1,10 +1,10 @@ """ - SindbadUtils + Utilities -The `SindbadUtils` package provides a collection of utility functions and tools for handling data, managing NamedTuples, and performing spatial and temporal operations in the SINDBAD framework. It serves as a foundational package for simplifying common tasks and ensuring consistency across SINDBAD experiments. +The `Utilities` module provides a collection of utility functions and tools for handling data, managing NamedTuples, and performing spatial and temporal operations in the SINDBAD framework. It serves as a foundational module for simplifying common tasks and ensuring consistency across SINDBAD experiments. # Purpose: -This package is designed to provide reusable utilities for data manipulation, statistical operations, and spatial/temporal processing. +This module is designed to provide reusable utilities for data manipulation, statistical operations, and spatial/temporal processing. # Dependencies: - `Sindbad`: Provides the core SINDBAD models and types. @@ -28,16 +28,21 @@ This package is designed to provide reusable utilities for data manipulation, st - Handles temporal operations, including time-based filtering and aggregation. """ -module SindbadUtils - using Sindbad +module Utilities + using ..SindbadCore + using ..SindbadCore.Types using Crayons using StyledStrings using FIGlet using Logging + using Accessors + using Dates + using DataStructures + using StatsBase include("getArrayView.jl") - include("utils.jl") + include("utilsStacks.jl") include("utilsNT.jl") include("utilsTemporal.jl") -end # module SindbadUtils +end # module Utilities diff --git a/lib/SindbadUtils/src/getArrayView.jl b/SindbadCore/src/Utilities/getArrayView.jl similarity index 100% rename from lib/SindbadUtils/src/getArrayView.jl rename to SindbadCore/src/Utilities/getArrayView.jl diff --git a/lib/SindbadUtils/src/utilsNT.jl b/SindbadCore/src/Utilities/utilsNT.jl similarity index 100% rename from lib/SindbadUtils/src/utilsNT.jl rename to SindbadCore/src/Utilities/utilsNT.jl diff --git a/lib/SindbadUtils/src/utils.jl b/SindbadCore/src/Utilities/utilsStacks.jl similarity index 99% rename from lib/SindbadUtils/src/utils.jl rename to SindbadCore/src/Utilities/utilsStacks.jl index b4293d70b..74d629248 100644 --- a/lib/SindbadUtils/src/utils.jl +++ b/SindbadCore/src/Utilities/utilsStacks.jl @@ -35,7 +35,7 @@ Adds a specified Julia package to the environment of a given module or project. # Notes: - This function assumes that the `where_to_add` module or project is structured with a standard Julia project layout. -- It requires the `Pkg` module for package management, which is re-exported from core Sindbad. +- It requires the `Pkg` module for package management, which is re-exported from core SindbadCore. # Example: ```julia @@ -240,7 +240,7 @@ Displays the given text as a banner using Figlets. """ function sindbadBanner(disp_text="SINDBAD", c_olor=true) if c_olor - print(SindbadUtils.Crayon(; foreground=rand(0:255)), "\n") + print(Crayon(; foreground=rand(0:255)), "\n") end println("######################################################################################################\n") FIGlet.render(disp_text, rand(figlet_fonts)) diff --git a/lib/SindbadUtils/src/utilsTemporal.jl b/SindbadCore/src/Utilities/utilsTemporal.jl similarity index 99% rename from lib/SindbadUtils/src/utilsTemporal.jl rename to SindbadCore/src/Utilities/utilsTemporal.jl index 245d0a231..8b683d962 100644 --- a/lib/SindbadUtils/src/utilsTemporal.jl +++ b/SindbadCore/src/Utilities/utilsTemporal.jl @@ -250,7 +250,7 @@ end function getTimeAggregatorTypeInstance(aggr::String) uc_first = toUpperCaseFirst(aggr, "Time") - return getfield(SindbadUtils, uc_first)() + return getfield(Utilities, uc_first)() end diff --git a/src/generateCode.jl b/SindbadCore/src/generateCode.jl similarity index 97% rename from src/generateCode.jl rename to SindbadCore/src/generateCode.jl index 1819d56a6..e968a4d09 100644 --- a/src/generateCode.jl +++ b/SindbadCore/src/generateCode.jl @@ -209,9 +209,9 @@ function generateSindbadApproach(model_name::Symbol, model_purpose::String, appr appr_name = Symbol(string(model_name) *"_"* string(appr_name)) end model_type_exists = model_name in nameof.(subtypes(LandEcosystem)) - model_path = joinpath(split(pathof(Sindbad),"/Sindbad.jl")[1], "Models", "$(model_name)", "$(model_name).jl") + model_path = joinpath(split(pathof(SindbadCore),"/SindbadCore.jl")[1], "Models", "$(model_name)", "$(model_name).jl") model_path_exists = isfile(model_path) - appr_path = joinpath(split(pathof(Sindbad),"/Sindbad.jl")[1], "Models", "$(model_name)", "$(appr_name).jl") + appr_path = joinpath(split(pathof(SindbadCore),"/SindbadCore.jl")[1], "Models", "$(model_name)", "$(appr_name).jl") appr_path_exists = isfile(appr_path) model_path_exists = over_write_model ? false : model_path_exists @@ -249,8 +249,8 @@ function generateSindbadApproach(model_name::Symbol, model_purpose::String, appr appr_exists = false appr_type_exists = false - if hasproperty(Sindbad.Models, model_name) - model_type = getproperty(Sindbad.Models, model_name) + if hasproperty(SindbadCore.Models, model_name) + model_type = getproperty(SindbadCore.Models, model_name) appr_types = nameof.(subtypes(model_type)) appr_type_exists = appr_name in appr_types end @@ -271,7 +271,7 @@ function generateSindbadApproach(model_name::Symbol, model_purpose::String, appr if appr_exists @info "Not generating approach." else - appr_path = joinpath(split(pathof(Sindbad),"/Sindbad.jl")[1], "Models", "$(model_name)", "$(appr_name).jl") + appr_path = joinpath(split(pathof(SindbadCore),"/SindbadCore.jl")[1], "Models", "$(model_name)", "$(appr_name).jl") @info "Generating a new approach: $(appr_name) for existing model: $(model_name) at:\n$(appr_path)" confirm_ = Base.prompt("Continue: y | n") if startswith(confirm_, "y") diff --git a/src/modelTools.jl b/SindbadCore/src/modelTools.jl similarity index 89% rename from src/modelTools.jl rename to SindbadCore/src/modelTools.jl index d6f902c8a..f488b3cdc 100644 --- a/src/modelTools.jl +++ b/SindbadCore/src/modelTools.jl @@ -8,14 +8,14 @@ export modelParameters """ - getInOutModel(model::Sindbad.Types.LandEcosystem) - getInOutModel(model::Sindbad.Types.LandEcosystem, model_func::Symbol) - getInOutModel(model::Sindbad.Types.LandEcosystem, model_funcs::Tuple) + getInOutModel(model::SindbadCore.Types.LandEcosystem) + getInOutModel(model::SindbadCore.Types.LandEcosystem, model_func::Symbol) + getInOutModel(model::SindbadCore.Types.LandEcosystem, model_funcs::Tuple) Parses and retrieves the inputs, outputs, and parameters (I/O/P) of SINDBAD models for specified functions or all functions. # Arguments: -- `model::Sindbad.Types.LandEcosystem`: A SINDBAD model instance. If no additional arguments are provided, parses all inputs, outputs, and parameters for all functions of the model. +- `model::SindbadCore.Types.LandEcosystem`: A SINDBAD model instance. If no additional arguments are provided, parses all inputs, outputs, and parameters for all functions of the model. - `model_func::Symbol`: (Optional) A single symbol representing a specific model function to parse (e.g., `:precompute`, `:parameters`, `:compute`). - `model_funcs::Tuple`: (Optional) A tuple of symbols representing multiple model functions to parse (e.g., `(:precompute, :parameters)`). @@ -56,15 +56,15 @@ io_data = getInOutModel(my_model, (:precompute, :parameters)) function getInOutModel end -function getInOutModel(T::Type{<:Sindbad.Types.LandEcosystem}; verbose=false) +function getInOutModel(T::Type{<:SindbadCore.Types.LandEcosystem}; verbose=false) return getInOutModel(T(), verbose=verbose) end -function getInOutModel(model::Sindbad.Types.LandEcosystem; verbose=true) +function getInOutModel(model::SindbadCore.Types.LandEcosystem; verbose=true) if verbose println(" collecting I/O/P of: $(nameof(typeof(model))).jl") end - mo_in_out=Sindbad.DataStructures.OrderedDict() + mo_in_out=SindbadCore.DataStructures.OrderedDict() for func in (:parameters, :compute, :define, :precompute, :update) if verbose println(" ...$(func)...") @@ -76,8 +76,8 @@ function getInOutModel(model::Sindbad.Types.LandEcosystem; verbose=true) end -function getInOutModel(model::Sindbad.Types.LandEcosystem, model_funcs::Tuple) - mo_in_out=Sindbad.DataStructures.OrderedDict() +function getInOutModel(model::SindbadCore.Types.LandEcosystem, model_funcs::Tuple) + mo_in_out=SindbadCore.DataStructures.OrderedDict() println(" collecting I/O/P of: $(nameof(typeof(model))).jl") for func in model_funcs println(" ...$(func)...") @@ -99,19 +99,19 @@ end function getInOutModel(model, model_func::Symbol) model_name = string(nameof(typeof(model))) - mod_vars = Sindbad.DataStructures.OrderedDict{Symbol, Any}() + mod_vars = SindbadCore.DataStructures.OrderedDict{Symbol, Any}() mod_vars[:approach] = model_name if model_func == :compute - mod_code = @code_string Sindbad.Models.compute(model, nothing, nothing, nothing) + mod_code = @code_string SindbadCore.Models.compute(model, nothing, nothing, nothing) elseif model_func == :define - mod_code = @code_string Sindbad.Models.define(model, nothing, nothing, nothing) + mod_code = @code_string SindbadCore.Models.define(model, nothing, nothing, nothing) elseif model_func == :parameters # mod_vars = modelParameter(model, false) return modelParameter(model, false) elseif model_func == :precompute - mod_code = @code_string Sindbad.Models.precompute(model, nothing, nothing, nothing) + mod_code = @code_string SindbadCore.Models.precompute(model, nothing, nothing, nothing) elseif model_func == :update - mod_code = @code_string Sindbad.Models.update(model, nothing, nothing, nothing) + mod_code = @code_string SindbadCore.Models.update(model, nothing, nothing, nothing) else error("can only check consistency in compute, define, params, precompute, and update of SINDBAD models. $(model_func) is not a suggested or recommended method to add to a SINDBAD model struct.") end @@ -262,12 +262,12 @@ function getInOutModels(ind_range=1:10000::UnitRange{Int64}) sm_list = keys(sind_m_dict) |> collect s_ind = max(1, first(ind_range)) e_ind = min(last(ind_range), length(sm_list)) - sm_io = Sindbad.DataStructures.OrderedDict() + sm_io = SindbadCore.DataStructures.OrderedDict() for s in sm_list[s_ind:e_ind] s_apr = sind_m_dict[s] if !isempty(s_apr) s_apr_s = join(s_apr, ".jl, ") * ".jl" - sm_io[s]=Sindbad.DataStructures.OrderedDict() + sm_io[s]=SindbadCore.DataStructures.OrderedDict() map(s_apr) do s_a s_a_name = Symbol(strip(last(split(string(s_a), string(s) * "_")))) s_a_t = getTypedModel(s_a) @@ -282,7 +282,7 @@ function getInOutModels(ind_range=1:10000::UnitRange{Int64}) end function getInOutModels(models::Tuple) - mod_vars = Sindbad.DataStructures.OrderedDict() + mod_vars = SindbadCore.DataStructures.OrderedDict() for (mi, _mod) in enumerate(models) mod_name = string(nameof(supertype(typeof(_mod)))) mod_name_sym=Symbol(mod_name) @@ -292,7 +292,7 @@ function getInOutModels(models::Tuple) end function getInOutModels(models, model_funcs::Tuple) - mod_vars = Sindbad.DataStructures.OrderedDict() + mod_vars = SindbadCore.DataStructures.OrderedDict() for (mi, _mod) in enumerate(models) mod_name = string(nameof(supertype(typeof(_mod)))) mod_name_sym=Symbol(mod_name) @@ -303,7 +303,7 @@ function getInOutModels(models, model_funcs::Tuple) end function getInOutModels(models, model_func::Symbol) - mod_vars = Sindbad.DataStructures.OrderedDict() + mod_vars = SindbadCore.DataStructures.OrderedDict() for (mi, _mod) in enumerate(models) mod_name = string(nameof(supertype(typeof(_mod)))) mod_name_sym=Symbol(mod_name) @@ -331,7 +331,7 @@ function getTypedModel(model::String, model_timestep="day", num_type=Float64) end function getTypedModel(model::Symbol, model_timestep="day", num_type=Float64) - model_obj = getfield(Sindbad.Models, model) + model_obj = getfield(SindbadCore.Models, model) model_instance = model_obj() parameter_names = fieldnames(model_obj) if length(parameter_names) > 0 @@ -363,7 +363,7 @@ get a value of a given model parameter with units corrected """ function getParameterValue(model, parameter_name, model_timestep) param = getfield(model, parameter_name) - p_timescale = Sindbad.Models.timescale(model, parameter_name) + p_timescale = SindbadCore.Models.timescale(model, parameter_name) return param * getUnitConversionForParameter(p_timescale, model_timestep) end @@ -444,14 +444,14 @@ end """ modelParameter(models, model::Symbol) - modelParameter(model::Sindbad.Types.LandEcosystem, show=true) + modelParameter(model::SindbadCore.Types.LandEcosystem, show=true) Return and optionally display the current parameters of a given SINDBAD model. # Arguments - `models`: A list/collection of SINDBAD models, required when `model` is a Symbol. - `model::Symbol`: A SINDBAD model name. -- `model::Sindbad.Types.LandEcosystem`: A SINDBAD model instance of type LandEcosystem. +- `model::SindbadCore.Types.LandEcosystem`: A SINDBAD model instance of type LandEcosystem. - `show::Bool`: A flag to print parameters to the screen (default: true). """ @@ -465,14 +465,14 @@ function modelParameter(models, model::Symbol) println("model: $(model_names[m_index])") println("approach: $(approach_names[m_index])") pnames = fieldnames(typeof(mod)) - p_dict = Sindbad.DataStructures.OrderedDict() + p_dict = SindbadCore.DataStructures.OrderedDict() if length(pnames) == 0 println("parameters: none") else println("parameters:") foreach(pnames) do fn p_dict[fn] = getproperty(mod, fn) - p_unit = Sindbad.Models.units(mod, fn) + p_unit = SindbadCore.Models.units(mod, fn) p_unit_info = p_unit == "" ? "unitless" : "($p_unit)" println(" $fn => $(getproperty(mod, fn)) $p_unit_info") end @@ -480,7 +480,7 @@ function modelParameter(models, model::Symbol) return p_dict end -function modelParameter(model::Sindbad.Types.LandEcosystem, show=true) +function modelParameter(model::SindbadCore.Types.LandEcosystem, show=true) model_name = Symbol(supertype(typeof(model))) approach_name = nameof(typeof(model)) if show @@ -501,12 +501,12 @@ function modelParameter(model::Sindbad.Types.LandEcosystem, show=true) # @show model, fn mod_prop = getproperty(model, fn) p_val = getproperty(model, fn) - p_describe = Sindbad.Models.describe(model, fn) - p_unit = Sindbad.Models.units(model, fn) + p_describe = SindbadCore.Models.describe(model, fn) + p_unit = SindbadCore.Models.units(model, fn) p_u = isempty(p_unit) ? "`unitless`" : "units: `$(p_unit)`" - p_timescale = Sindbad.Models.timescale(model, fn) + p_timescale = SindbadCore.Models.timescale(model, fn) p_t = isempty(p_timescale) ? "`all` timescales" : "`$(p_timescale)` timescale" - p_bounds = Sindbad.Models.bounds(model, fn) + p_bounds = SindbadCore.Models.bounds(model, fn) p_w = "$(p_val) ∈ [$(p_bounds[1]), $(p_bounds[2])] => $(p_describe) ($(p_u) @ $(p_t))" p_p = Pair(fn, p_w) if show diff --git a/src/sindbadVariableCatalog.jl b/SindbadCore/src/sindbadVariableCatalog.jl similarity index 100% rename from src/sindbadVariableCatalog.jl rename to SindbadCore/src/sindbadVariableCatalog.jl diff --git a/src/utilsCore.jl b/SindbadCore/src/utilsCore.jl similarity index 99% rename from src/utilsCore.jl rename to SindbadCore/src/utilsCore.jl index a212f7b35..54442ae9c 100644 --- a/src/utilsCore.jl +++ b/SindbadCore/src/utilsCore.jl @@ -262,7 +262,7 @@ helper function to return a dictionary of sindbad model and approaches function getSindbadModels(; all_models=standard_sindbad_models) approaches = [] for _md ∈ all_models - push!(approaches, Pair(_md, [nameof(_x) for _x in subtypes(getfield(Sindbad.Models, _md))])) + push!(approaches, Pair(_md, [nameof(_x) for _x in subtypes(getfield(SindbadCore.Models, _md))])) end return DataStructures.OrderedDict(approaches) end diff --git a/test/Models/ambientCO2.jl b/SindbadCore/test/Models/ambientCO2.jl similarity index 97% rename from test/Models/ambientCO2.jl rename to SindbadCore/test/Models/ambientCO2.jl index 64a1a5e9d..d21ac9b69 100644 --- a/test/Models/ambientCO2.jl +++ b/SindbadCore/test/Models/ambientCO2.jl @@ -1,4 +1,4 @@ -import Sindbad.Models as SM +import SindbadCore.Models as SM @testset "ambientCO2" verbose=true begin @testset "ambientCO2_constant" begin diff --git a/test/Models/autoRespiration.jl b/SindbadCore/test/Models/autoRespiration.jl similarity index 97% rename from test/Models/autoRespiration.jl rename to SindbadCore/test/Models/autoRespiration.jl index 558bec311..e21c10b65 100644 --- a/test/Models/autoRespiration.jl +++ b/SindbadCore/test/Models/autoRespiration.jl @@ -1,4 +1,4 @@ -import Sindbad.Models as SM +import SindbadCore.Models as SM @testset "autoRespiration" verbose=true begin @testset "autoRespiration_none" begin diff --git a/test/Models/models.jl b/SindbadCore/test/Models/models.jl similarity index 86% rename from test/Models/models.jl rename to SindbadCore/test/Models/models.jl index 975fa75c3..e4e02e1d9 100644 --- a/test/Models/models.jl +++ b/SindbadCore/test/Models/models.jl @@ -1,4 +1,4 @@ -import Sindbad.Models as SM +import SindbadCore.Models as SM include("../mock_input/forcing.jl") include("../mock_input/land.jl") diff --git a/test/Project.toml b/SindbadCore/test/Project.toml similarity index 67% rename from test/Project.toml rename to SindbadCore/test/Project.toml index 7f8d75ab4..77a94c387 100644 --- a/test/Project.toml +++ b/SindbadCore/test/Project.toml @@ -1,4 +1,4 @@ [deps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/lib/SindbadUtils/test/longtuple.jl b/SindbadCore/test/Utilities/longtuple.jl similarity index 81% rename from lib/SindbadUtils/test/longtuple.jl rename to SindbadCore/test/Utilities/longtuple.jl index bb93efc04..a9d6584bf 100644 --- a/lib/SindbadUtils/test/longtuple.jl +++ b/SindbadCore/test/Utilities/longtuple.jl @@ -1,8 +1,8 @@ -using Sindbad -using SindbadUtils: makeLongTuple, getTupleFromLongTuple +using SindbadCore +using SindbadCore.Utilities: makeLongTuple, getTupleFromLongTuple using Test -@testset "SindbadUtils: LongTuple" begin +@testset "Utilitis: LongTuple" begin # define a toy tuple of models models_set = (rainSnow_Tair(), ambientCO2_constant(), cAllocation_fixed(), cCycle_simple(), fAPAR_constant(), gpp_coupled(), PFT_constant(), cCycleBase_CASA()) diff --git a/test/mock_input/forcing.jl b/SindbadCore/test/mock_input/forcing.jl similarity index 100% rename from test/mock_input/forcing.jl rename to SindbadCore/test/mock_input/forcing.jl diff --git a/test/mock_input/helpers.jl b/SindbadCore/test/mock_input/helpers.jl similarity index 100% rename from test/mock_input/helpers.jl rename to SindbadCore/test/mock_input/helpers.jl diff --git a/test/mock_input/land.jl b/SindbadCore/test/mock_input/land.jl similarity index 100% rename from test/mock_input/land.jl rename to SindbadCore/test/mock_input/land.jl diff --git a/test/runtests.jl b/SindbadCore/test/runtests.jl similarity index 51% rename from test/runtests.jl rename to SindbadCore/test/runtests.jl index e4d61ed74..c0e761e6c 100644 --- a/test/runtests.jl +++ b/SindbadCore/test/runtests.jl @@ -1,8 +1,9 @@ -using Sindbad +using SindbadCore using BenchmarkTools using Test @testset verbose=true begin include("utilsCore.jl") - include("Models/models.jl") + include("Models/models.jl") + include("Utilities/longtuple.jl") end \ No newline at end of file diff --git a/test/utilsCore.jl b/SindbadCore/test/utilsCore.jl similarity index 96% rename from test/utilsCore.jl rename to SindbadCore/test/utilsCore.jl index e95bc121e..cee558229 100644 --- a/test/utilsCore.jl +++ b/SindbadCore/test/utilsCore.jl @@ -1,5 +1,5 @@ # test utilsCore here -import Sindbad.Models as SM +import SindbadCore.Models as SM include("./mock_input/forcing.jl") include("./mock_input/land.jl") diff --git a/SindbadData/LICENSE.md b/SindbadData/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadData/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/SindbadData/NOTICE.md b/SindbadData/NOTICE.md new file mode 100644 index 000000000..189d3d824 --- /dev/null +++ b/SindbadData/NOTICE.md @@ -0,0 +1 @@ +Copyright: Copyright (C) 2025 Max-Planck-Gesellschaft zur Förderung der Wissenschaften; Licensed under the EUPL, with extension of article 5 (compatibility clause) to any licence for distributing derivative works that have been produced by the normal use of the Work as a library. \ No newline at end of file diff --git a/lib/SindbadData/Project.toml b/SindbadData/Project.toml similarity index 80% rename from lib/SindbadData/Project.toml rename to SindbadData/Project.toml index 0478fdc35..76ac8f58f 100644 --- a/lib/SindbadData/Project.toml +++ b/SindbadData/Project.toml @@ -9,15 +9,13 @@ DimensionalData = "0703355e-b756-11e9-17c0-8b28908087d0" FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" NCDatasets = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" NetCDF = "30363a11-5582-574a-97bb-aa9a979735b9" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" YAXArrayBase = "90b8fcef-0c2d-428d-9c56-5f86629e9d14" YAXArrays = "c21b50f5-aa40-41ea-b809-c0f5e47bfa5c" Zarr = "0a941bbe-ad1d-11e8-39d9-ab76183a1d99" [sources] -Sindbad = {path = "../.."} -SindbadUtils = {path = "../../lib/SindbadUtils"} +SindbadCore = {path = "../SindbadCore"} [compat] AxisKeys = "0.2.15" diff --git a/lib/SindbadData/src/SindbadData.jl b/SindbadData/src/SindbadData.jl similarity index 98% rename from lib/SindbadData/src/SindbadData.jl rename to SindbadData/src/SindbadData.jl index faac7cc24..791e88187 100644 --- a/lib/SindbadData/src/SindbadData.jl +++ b/SindbadData/src/SindbadData.jl @@ -38,8 +38,7 @@ This package is designed to streamline the ingestion and preprocessing of input """ module SindbadData - using Sindbad - using SindbadUtils + using SindbadCore using AxisKeys: KeyedArray, AxisKeys using FillArrays using DimensionalData diff --git a/lib/SindbadData/src/getForcing.jl b/SindbadData/src/getForcing.jl similarity index 100% rename from lib/SindbadData/src/getForcing.jl rename to SindbadData/src/getForcing.jl diff --git a/lib/SindbadData/src/getObservation.jl b/SindbadData/src/getObservation.jl similarity index 100% rename from lib/SindbadData/src/getObservation.jl rename to SindbadData/src/getObservation.jl diff --git a/lib/SindbadData/src/spatialSubset.jl b/SindbadData/src/spatialSubset.jl similarity index 100% rename from lib/SindbadData/src/spatialSubset.jl rename to SindbadData/src/spatialSubset.jl diff --git a/lib/SindbadData/src/utilsData.jl b/SindbadData/src/utilsData.jl similarity index 100% rename from lib/SindbadData/src/utilsData.jl rename to SindbadData/src/utilsData.jl diff --git a/SindbadExperiment/LICENSE.md b/SindbadExperiment/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadExperiment/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/SindbadExperiment/NOTICE.md b/SindbadExperiment/NOTICE.md new file mode 100644 index 000000000..189d3d824 --- /dev/null +++ b/SindbadExperiment/NOTICE.md @@ -0,0 +1 @@ +Copyright: Copyright (C) 2025 Max-Planck-Gesellschaft zur Förderung der Wissenschaften; Licensed under the EUPL, with extension of article 5 (compatibility clause) to any licence for distributing derivative works that have been produced by the normal use of the Work as a library. \ No newline at end of file diff --git a/lib/SindbadExperiment/Project.toml b/SindbadExperiment/Project.toml similarity index 50% rename from lib/SindbadExperiment/Project.toml rename to SindbadExperiment/Project.toml index e2381bfc2..5e707ef3c 100644 --- a/lib/SindbadExperiment/Project.toml +++ b/SindbadExperiment/Project.toml @@ -4,21 +4,19 @@ authors = ["SINDBAD Contributors "] version = "0.1.0" [deps] -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" SindbadOptimization = "64fff8bd-0c13-402c-aa96-b97d0bc3655c" SindbadSetup = "2b7f2987-8a1e-48b4-8a02-cc9e7c4eeb1c" SindbadTEM = "f6108451-10cb-42fa-b0c1-67671cf08f15" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" SindbadVisuals = "49d56b06-c9ff-43e2-9c93-8639e8c3cbdc" [sources] -Sindbad = {path = "../.."} -SindbadData = {path = "../../lib/SindbadData"} -SindbadMetrics = {path = "../../lib/SindbadMetrics"} -SindbadOptimization = {path = "../../lib/SindbadOptimization"} -SindbadSetup = {path = "../../lib/SindbadSetup"} -SindbadTEM = {path = "../../lib/SindbadTEM"} -SindbadUtils = {path = "../../lib/SindbadUtils"} -SindbadVisuals = {path = "../../lib/SindbadVisuals"} +SindbadCore = {path = "../SindbadCore"} +SindbadData = {path = "../SindbadData"} +SindbadMetrics = {path = "../SindbadMetrics"} +SindbadOptimization = {path = "../SindbadOptimization"} +SindbadSetup = {path = "../SindbadSetup"} +SindbadTEM = {path = "../SindbadTEM"} +SindbadVisuals = {path = "../SindbadVisuals"} diff --git a/lib/SindbadExperiment/src/SindbadExperiment.jl b/SindbadExperiment/src/SindbadExperiment.jl similarity index 97% rename from lib/SindbadExperiment/src/SindbadExperiment.jl rename to SindbadExperiment/src/SindbadExperiment.jl index 3fd3bce93..029d0b454 100644 --- a/lib/SindbadExperiment/src/SindbadExperiment.jl +++ b/SindbadExperiment/src/SindbadExperiment.jl @@ -39,9 +39,8 @@ runExperimentForward(experiment_config) ``` """ module SindbadExperiment - using Sindbad - @reexport using Sindbad - @reexport using SindbadUtils + using SindbadCore + @reexport using SindbadCore @reexport using SindbadSetup @reexport using SindbadData @reexport using SindbadTEM diff --git a/lib/SindbadExperiment/src/runExperiment.jl b/SindbadExperiment/src/runExperiment.jl similarity index 100% rename from lib/SindbadExperiment/src/runExperiment.jl rename to SindbadExperiment/src/runExperiment.jl diff --git a/lib/SindbadExperiment/src/saveOutput.jl b/SindbadExperiment/src/saveOutput.jl similarity index 100% rename from lib/SindbadExperiment/src/saveOutput.jl rename to SindbadExperiment/src/saveOutput.jl diff --git a/SindbadML/LICENSE.md b/SindbadML/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadML/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/SindbadML/NOTICE.md b/SindbadML/NOTICE.md new file mode 100644 index 000000000..189d3d824 --- /dev/null +++ b/SindbadML/NOTICE.md @@ -0,0 +1 @@ +Copyright: Copyright (C) 2025 Max-Planck-Gesellschaft zur Förderung der Wissenschaften; Licensed under the EUPL, with extension of article 5 (compatibility clause) to any licence for distributing derivative works that have been produced by the normal use of the Work as a library. \ No newline at end of file diff --git a/lib/SindbadML/Project.toml b/SindbadML/Project.toml similarity index 74% rename from lib/SindbadML/Project.toml rename to SindbadML/Project.toml index 5d2da08c0..26245c1ad 100644 --- a/lib/SindbadML/Project.toml +++ b/SindbadML/Project.toml @@ -6,7 +6,6 @@ version = "0.1.0" [deps] DiskArrays = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b" -Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" @@ -19,24 +18,21 @@ ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" SharedArrays = "1a1011a3-84de-559e-8e89-a11a2f7dc383" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" SindbadSetup = "2b7f2987-8a1e-48b4-8a02-cc9e7c4eeb1c" SindbadTEM = "f6108451-10cb-42fa-b0c1-67671cf08f15" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [sources] -Sindbad = {path = "../.."} -SindbadData = {path = "../../lib/SindbadData"} -SindbadMetrics = {path = "../../lib/SindbadMetrics"} -SindbadSetup = {path = "../../lib/SindbadSetup"} -SindbadTEM = {path = "../../lib/SindbadTEM"} -SindbadUtils = {path = "../../lib/SindbadUtils"} +SindbadCore = {path = "../SindbadCore"} +SindbadData = {path = "../SindbadData"} +SindbadMetrics = {path = "../SindbadMetrics"} +SindbadSetup = {path = "../SindbadSetup"} +SindbadTEM = {path = "../SindbadTEM"} [compat] DiskArrays = "0.4.11" -Enzyme = "0.13.38" PolyesterForwardDiff = "0.1.2" diff --git a/SindbadML/ext/SindbadMLEnzymeExt.jl b/SindbadML/ext/SindbadMLEnzymeExt.jl new file mode 100644 index 000000000..b380b04fb --- /dev/null +++ b/SindbadML/ext/SindbadMLEnzymeExt.jl @@ -0,0 +1,16 @@ +module SindbadMLEnzymeExt + +using SindbadML +import SindbadML: gradientSite +import SindbadML: EnzymeGrad +using Enzyme + +function gradientSite(::EnzymeGrad, x_vals::AbstractArray, gradient_options::NamedTuple,loss_f::F) where {F} + # does not work with `Enzyme.gradient!` but is kept here as placeholder for future development + # Ensure x_vals is a mutable array (Vector) + x_vals = collect(copy(x_vals)) # Convert to a mutable array if necessary + # x_vals = copy(x_vals) + return Enzyme.gradient(Forward, loss_f, x_vals) +end + +end \ No newline at end of file diff --git a/lib/SindbadML/src/SindbadML.jl b/SindbadML/src/SindbadML.jl similarity index 92% rename from lib/SindbadML/src/SindbadML.jl rename to SindbadML/src/SindbadML.jl index ac6661b02..aac3e342b 100644 --- a/lib/SindbadML/src/SindbadML.jl +++ b/SindbadML/src/SindbadML.jl @@ -11,7 +11,7 @@ This package brings together all components required for hybrid (process-based + - `Sindbad`, `SindbadTEM`, `SindbadSetup`: Core SINDBAD modules for process-based modeling and setup. - `SindbadData.YAXArrays`, `SindbadData.Zarr`, `SindbadData.AxisKeys`, `SindbadData`: Data handling, array, and cube utilities. - `SindbadMetrics`: Metrics for model performance/loss evaluation. -- `Enzyme`, `Zygote`, `ForwardDiff`, `FiniteDiff`, `FiniteDifferences`, `PolyesterForwardDiff`: Automatic and numerical differentiation libraries for gradient-based learning. +- `PolyesterForwardDiff`, `Enzyme`, `Zygote`, `ForwardDiff`, `FiniteDiff`, `FiniteDifferences`: Automatic and numerical differentiation libraries for gradient-based learning. (Defaults will be Zygote and PolyesterForwardDiff for performance. All others should come as extensions.) - `Flux`: Neural network layers and training utilities for ML models. - `Optimisers`: Optimizers for training neural networks. - `Statistics`: Statistical utilities. @@ -48,7 +48,7 @@ module SindbadML nprocs, CachingPool - using Sindbad + using SindbadCore using SindbadTEM using SindbadSetup using SindbadData.YAXArrays @@ -57,7 +57,7 @@ module SindbadML using SindbadData: AllNaN using SindbadData: yaxCubeToKeyedArray, Cube using SindbadMetrics - using Enzyme + # using Enzyme # --- MOVED TO EXTENSION --- using Flux using Optimisers diff --git a/lib/SindbadML/src/activationFunctions.jl b/SindbadML/src/activationFunctions.jl similarity index 100% rename from lib/SindbadML/src/activationFunctions.jl rename to SindbadML/src/activationFunctions.jl diff --git a/lib/SindbadML/src/diffCaches.jl b/SindbadML/src/diffCaches.jl similarity index 100% rename from lib/SindbadML/src/diffCaches.jl rename to SindbadML/src/diffCaches.jl diff --git a/lib/SindbadML/src/loadCovariates.jl b/SindbadML/src/loadCovariates.jl similarity index 100% rename from lib/SindbadML/src/loadCovariates.jl rename to SindbadML/src/loadCovariates.jl diff --git a/lib/SindbadML/src/loss.jl b/SindbadML/src/loss.jl similarity index 100% rename from lib/SindbadML/src/loss.jl rename to SindbadML/src/loss.jl diff --git a/lib/SindbadML/src/mlGradient.jl b/SindbadML/src/mlGradient.jl similarity index 97% rename from lib/SindbadML/src/mlGradient.jl rename to SindbadML/src/mlGradient.jl index 7390bfa2c..7f9131e84 100644 --- a/lib/SindbadML/src/mlGradient.jl +++ b/SindbadML/src/mlGradient.jl @@ -173,13 +173,6 @@ function gradientSite(::ZygoteGrad, x_vals::AbstractArray, gradient_options::Nam return Zygote.gradient(loss_f, x_vals) end -function gradientSite(::EnzymeGrad, x_vals::AbstractArray, gradient_options::NamedTuple,loss_f::F) where {F} - # does not work with `Enzyme.gradient!` but is kept here as placeholder for future development - # Ensure x_vals is a mutable array (Vector) - x_vals = collect(copy(x_vals)) # Convert to a mutable array if necessary - # x_vals = copy(x_vals) - return Enzyme.gradient(Forward, loss_f, x_vals) -end """ gradientBatch!(grads_lib, grads_batch, chunk_size::Int, loss_f::Function, get_inner_args::Function, input_args...; showprog=false) diff --git a/lib/SindbadML/src/mlModels.jl b/SindbadML/src/mlModels.jl similarity index 100% rename from lib/SindbadML/src/mlModels.jl rename to SindbadML/src/mlModels.jl diff --git a/lib/SindbadML/src/mlOptimizers.jl b/SindbadML/src/mlOptimizers.jl similarity index 100% rename from lib/SindbadML/src/mlOptimizers.jl rename to SindbadML/src/mlOptimizers.jl diff --git a/lib/SindbadML/src/mlTrain.jl b/SindbadML/src/mlTrain.jl similarity index 100% rename from lib/SindbadML/src/mlTrain.jl rename to SindbadML/src/mlTrain.jl diff --git a/lib/SindbadML/src/neuralNetwork.jl b/SindbadML/src/neuralNetwork.jl similarity index 100% rename from lib/SindbadML/src/neuralNetwork.jl rename to SindbadML/src/neuralNetwork.jl diff --git a/lib/SindbadML/src/oneHots.jl b/SindbadML/src/oneHots.jl similarity index 100% rename from lib/SindbadML/src/oneHots.jl rename to SindbadML/src/oneHots.jl diff --git a/lib/SindbadML/src/prepHybrid.jl b/SindbadML/src/prepHybrid.jl similarity index 100% rename from lib/SindbadML/src/prepHybrid.jl rename to SindbadML/src/prepHybrid.jl diff --git a/lib/SindbadML/src/siteLosses.jl b/SindbadML/src/siteLosses.jl similarity index 100% rename from lib/SindbadML/src/siteLosses.jl rename to SindbadML/src/siteLosses.jl diff --git a/lib/SindbadML/src/utilsML.jl b/SindbadML/src/utilsML.jl similarity index 100% rename from lib/SindbadML/src/utilsML.jl rename to SindbadML/src/utilsML.jl diff --git a/lib/SindbadML/test/runtests.jl b/SindbadML/test/runtests.jl similarity index 100% rename from lib/SindbadML/test/runtests.jl rename to SindbadML/test/runtests.jl diff --git a/SindbadMetrics/LICENSE.md b/SindbadMetrics/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadMetrics/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/SindbadMetrics/NOTICE.md b/SindbadMetrics/NOTICE.md new file mode 100644 index 000000000..189d3d824 --- /dev/null +++ b/SindbadMetrics/NOTICE.md @@ -0,0 +1 @@ +Copyright: Copyright (C) 2025 Max-Planck-Gesellschaft zur Förderung der Wissenschaften; Licensed under the EUPL, with extension of article 5 (compatibility clause) to any licence for distributing derivative works that have been produced by the normal use of the Work as a library. \ No newline at end of file diff --git a/lib/SindbadMetrics/Project.toml b/SindbadMetrics/Project.toml similarity index 56% rename from lib/SindbadMetrics/Project.toml rename to SindbadMetrics/Project.toml index efa9cd7bb..fdb90795f 100644 --- a/lib/SindbadMetrics/Project.toml +++ b/SindbadMetrics/Project.toml @@ -4,8 +4,7 @@ authors = ["SINDBAD Contributors "] version = "0.1.0" [deps] -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" [sources] -Sindbad = {path = "../.."} +SindbadCore = {path = "../SindbadCore"} diff --git a/lib/SindbadMetrics/src/SindbadMetrics.jl b/SindbadMetrics/src/SindbadMetrics.jl similarity index 98% rename from lib/SindbadMetrics/src/SindbadMetrics.jl rename to SindbadMetrics/src/SindbadMetrics.jl index 18db43dd0..a3aee07e9 100644 --- a/lib/SindbadMetrics/src/SindbadMetrics.jl +++ b/SindbadMetrics/src/SindbadMetrics.jl @@ -46,9 +46,8 @@ correlation = metric(model_output, observations, Pcor()) """ module SindbadMetrics - using Sindbad - using SindbadUtils - + using SindbadCore + include("handleDataForLoss.jl") include("getMetrics.jl") include("metrics.jl") diff --git a/lib/SindbadMetrics/src/getMetrics.jl b/SindbadMetrics/src/getMetrics.jl similarity index 100% rename from lib/SindbadMetrics/src/getMetrics.jl rename to SindbadMetrics/src/getMetrics.jl diff --git a/lib/SindbadMetrics/src/handleDataForLoss.jl b/SindbadMetrics/src/handleDataForLoss.jl similarity index 100% rename from lib/SindbadMetrics/src/handleDataForLoss.jl rename to SindbadMetrics/src/handleDataForLoss.jl diff --git a/lib/SindbadMetrics/src/metrics.jl b/SindbadMetrics/src/metrics.jl similarity index 100% rename from lib/SindbadMetrics/src/metrics.jl rename to SindbadMetrics/src/metrics.jl diff --git a/SindbadOptimization/LICENSE.md b/SindbadOptimization/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadOptimization/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/SindbadOptimization/NOTICE.md b/SindbadOptimization/NOTICE.md new file mode 100644 index 000000000..189d3d824 --- /dev/null +++ b/SindbadOptimization/NOTICE.md @@ -0,0 +1 @@ +Copyright: Copyright (C) 2025 Max-Planck-Gesellschaft zur Förderung der Wissenschaften; Licensed under the EUPL, with extension of article 5 (compatibility clause) to any licence for distributing derivative works that have been produced by the normal use of the Work as a library. \ No newline at end of file diff --git a/lib/SindbadOptimization/Project.toml b/SindbadOptimization/Project.toml similarity index 80% rename from lib/SindbadOptimization/Project.toml rename to SindbadOptimization/Project.toml index 30ba6566b..cf4294d74 100644 --- a/lib/SindbadOptimization/Project.toml +++ b/SindbadOptimization/Project.toml @@ -18,19 +18,17 @@ OptimizationCMAEvolutionStrategy = "bd407f91-200f-4536-9381-e4ba712f53f8" OptimizationGCMAES = "6f0a0517-dbc2-4a7a-8a20-99ae7f27e911" OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e" QuasiMonteCarlo = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" SindbadSetup = "2b7f2987-8a1e-48b4-8a02-cc9e7c4eeb1c" SindbadTEM = "f6108451-10cb-42fa-b0c1-67671cf08f15" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" [sources] -Sindbad = {path = "../.."} -SindbadMetrics = {path = "../../lib/SindbadMetrics"} -SindbadSetup = {path = "../../lib/SindbadSetup"} -SindbadTEM = {path = "../../lib/SindbadTEM"} -SindbadUtils = {path = "../../lib/SindbadUtils"} +SindbadCore = {path = "../SindbadCore"} +SindbadMetrics = {path = "../SindbadMetrics"} +SindbadSetup = {path = "../SindbadSetup"} +SindbadTEM = {path = "../SindbadTEM"} [compat] GlobalSensitivity = "2.7.0" diff --git a/lib/SindbadOptimization/src/SindbadOptimization.jl b/SindbadOptimization/src/SindbadOptimization.jl similarity index 99% rename from lib/SindbadOptimization/src/SindbadOptimization.jl rename to SindbadOptimization/src/SindbadOptimization.jl index 424e8110a..8bdb5b489 100644 --- a/lib/SindbadOptimization/src/SindbadOptimization.jl +++ b/SindbadOptimization/src/SindbadOptimization.jl @@ -83,8 +83,7 @@ module SindbadOptimization # using OptimizationQuadDIRECT using QuasiMonteCarlo using StableRNGs - using Sindbad - using SindbadUtils + using SindbadCore using SindbadSetup using SindbadTEM using SindbadMetrics diff --git a/lib/SindbadOptimization/src/cost.jl b/SindbadOptimization/src/cost.jl similarity index 100% rename from lib/SindbadOptimization/src/cost.jl rename to SindbadOptimization/src/cost.jl diff --git a/lib/SindbadOptimization/src/optimizeTEM.jl b/SindbadOptimization/src/optimizeTEM.jl similarity index 100% rename from lib/SindbadOptimization/src/optimizeTEM.jl rename to SindbadOptimization/src/optimizeTEM.jl diff --git a/lib/SindbadOptimization/src/optimizer.jl b/SindbadOptimization/src/optimizer.jl similarity index 100% rename from lib/SindbadOptimization/src/optimizer.jl rename to SindbadOptimization/src/optimizer.jl diff --git a/lib/SindbadOptimization/src/prepOpti.jl b/SindbadOptimization/src/prepOpti.jl similarity index 100% rename from lib/SindbadOptimization/src/prepOpti.jl rename to SindbadOptimization/src/prepOpti.jl diff --git a/lib/SindbadOptimization/src/sensitivityAnalysis.jl b/SindbadOptimization/src/sensitivityAnalysis.jl similarity index 100% rename from lib/SindbadOptimization/src/sensitivityAnalysis.jl rename to SindbadOptimization/src/sensitivityAnalysis.jl diff --git a/SindbadSetup/LICENSE.md b/SindbadSetup/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadSetup/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/SindbadSetup/NOTICE.md b/SindbadSetup/NOTICE.md new file mode 100644 index 000000000..189d3d824 --- /dev/null +++ b/SindbadSetup/NOTICE.md @@ -0,0 +1 @@ +Copyright: Copyright (C) 2025 Max-Planck-Gesellschaft zur Förderung der Wissenschaften; Licensed under the EUPL, with extension of article 5 (compatibility clause) to any licence for distributing derivative works that have been produced by the normal use of the Work as a library. \ No newline at end of file diff --git a/lib/SindbadSetup/Project.toml b/SindbadSetup/Project.toml similarity index 71% rename from lib/SindbadSetup/Project.toml rename to SindbadSetup/Project.toml index ca4ce834a..0a77bd8c8 100644 --- a/lib/SindbadSetup/Project.toml +++ b/SindbadSetup/Project.toml @@ -9,12 +9,10 @@ ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" Infiltrator = "5903a43b-9cc3-4c30-8d17-598619ec4e9b" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" [sources] -Sindbad = {path = "../.."} -SindbadUtils = {path = "../../lib/SindbadUtils"} +SindbadCore = {path = "../SindbadCore"} [compat] ConstructionBase = "1.5.8" diff --git a/lib/SindbadSetup/src/SindbadSetup.jl b/SindbadSetup/src/SindbadSetup.jl similarity index 97% rename from lib/SindbadSetup/src/SindbadSetup.jl rename to SindbadSetup/src/SindbadSetup.jl index d53ffcc2b..2896ee691 100644 --- a/lib/SindbadSetup/src/SindbadSetup.jl +++ b/SindbadSetup/src/SindbadSetup.jl @@ -58,8 +58,7 @@ This package is designed to produce the SINDBAD `info` object, which contains al """ module SindbadSetup - using Sindbad - using SindbadUtils + using SindbadCore using ConstructionBase @reexport using CSV: CSV @reexport using Infiltrator @@ -80,7 +79,7 @@ module SindbadSetup include("setupInfo.jl") # include doc strings for all types in Types - ds_file = joinpath(dirname(pathof(Sindbad)), "Types/docStringForTypes.jl") + ds_file = joinpath(dirname(pathof(SindbadCore)), "Types/docStringForTypes.jl") loc_types = subtypes(SindbadTypes) open(ds_file, "a") do o_file writeTypeDocString(o_file, SindbadTypes) diff --git a/lib/SindbadSetup/src/defaultOptions.jl b/SindbadSetup/src/defaultOptions.jl similarity index 100% rename from lib/SindbadSetup/src/defaultOptions.jl rename to SindbadSetup/src/defaultOptions.jl diff --git a/lib/SindbadSetup/src/getConfiguration.jl b/SindbadSetup/src/getConfiguration.jl similarity index 100% rename from lib/SindbadSetup/src/getConfiguration.jl rename to SindbadSetup/src/getConfiguration.jl diff --git a/lib/SindbadSetup/src/setupExperimentInfo.jl b/SindbadSetup/src/setupExperimentInfo.jl similarity index 96% rename from lib/SindbadSetup/src/setupExperimentInfo.jl rename to SindbadSetup/src/setupExperimentInfo.jl index 340e13ede..6e939ca22 100644 --- a/lib/SindbadSetup/src/setupExperimentInfo.jl +++ b/SindbadSetup/src/setupExperimentInfo.jl @@ -117,7 +117,7 @@ end """ setDebugErrorCatcher(::DoCatchModelErrors | ::DoNotCatchModelErrors) -Enables/Disables a debug error catcher for the SINDBAD framework. When enabled, a variable `error_catcher` is enabled and can be written to from within SINDBAD models and functions. This can then be accessed from any scope with `Sindbad.error_catcher` +Enables/Disables a debug error catcher for the SINDBAD framework. When enabled, a variable `error_catcher` is enabled and can be written to from within SINDBAD models and functions. This can then be accessed from any scope with `SindbadCore.error_catcher` # Arguments: - `::DoCatchModelErrors`: A type dispatch indicating that model errors should be caught. @@ -127,13 +127,13 @@ Enables/Disables a debug error catcher for the SINDBAD framework. When enabled, - `nothing`. # Notes: -- When enabled, sets up an empty error catcher using `Sindbad.eval`. +- When enabled, sets up an empty error catcher using `SindbadCore.eval`. """ function setDebugErrorCatcher end function setDebugErrorCatcher(::DoCatchModelErrors) showInfo(setDebugErrorCatcher, @__FILE__, @__LINE__, "setting up debug error catcher", n_m=1) - Sindbad.eval(:(error_catcher = [])) + SindbadCore.eval(:(error_catcher = [])) return nothing end diff --git a/lib/SindbadSetup/src/setupHybridML.jl b/SindbadSetup/src/setupHybridML.jl similarity index 100% rename from lib/SindbadSetup/src/setupHybridML.jl rename to SindbadSetup/src/setupHybridML.jl diff --git a/lib/SindbadSetup/src/setupInfo.jl b/SindbadSetup/src/setupInfo.jl similarity index 100% rename from lib/SindbadSetup/src/setupInfo.jl rename to SindbadSetup/src/setupInfo.jl diff --git a/lib/SindbadSetup/src/setupModels.jl b/SindbadSetup/src/setupModels.jl similarity index 98% rename from lib/SindbadSetup/src/setupModels.jl rename to SindbadSetup/src/setupModels.jl index 6013c5558..c4343107f 100644 --- a/lib/SindbadSetup/src/setupModels.jl +++ b/SindbadSetup/src/setupModels.jl @@ -55,7 +55,7 @@ function getAllSindbadModels(info; sindbad_models=standard_sindbad_models, sele foreach(sindbad_models) do sm if sm in selected_models selected_approach = selected_models_info === nothing ? "none" : Symbol("$(sm)_$(getfield(selected_models_info, sm).approach)") - showInfo(nothing, @__FILE__, @__LINE__, "$(mod_ind): `$(selected_approach)`.jl => $(purpose(getproperty(Sindbad, selected_approach)))", n_m=6) + showInfo(nothing, @__FILE__, @__LINE__, "$(mod_ind): `$(selected_approach)`.jl => $(purpose(getproperty(SindbadCore, selected_approach)))", n_m=6) mod_ind += 1 end end diff --git a/lib/SindbadSetup/src/setupOptimization.jl b/SindbadSetup/src/setupOptimization.jl similarity index 100% rename from lib/SindbadSetup/src/setupOptimization.jl rename to SindbadSetup/src/setupOptimization.jl diff --git a/lib/SindbadSetup/src/setupOutput.jl b/SindbadSetup/src/setupOutput.jl similarity index 100% rename from lib/SindbadSetup/src/setupOutput.jl rename to SindbadSetup/src/setupOutput.jl diff --git a/lib/SindbadSetup/src/setupParameters.jl b/SindbadSetup/src/setupParameters.jl similarity index 99% rename from lib/SindbadSetup/src/setupParameters.jl rename to SindbadSetup/src/setupParameters.jl index d817a4f66..b3a47bf40 100644 --- a/lib/SindbadSetup/src/setupParameters.jl +++ b/SindbadSetup/src/setupParameters.jl @@ -93,12 +93,12 @@ function getParameters(selected_models::Tuple, num_type, model_timestep; return_ for m in eachindex(name) prm_name = Symbol(name[m]) appr = approach_func[m]() - p_timescale = Sindbad.Models.timescale(appr, prm_name) + p_timescale = SindbadCore.Models.timescale(appr, prm_name) unit_factor = getUnitConversionForParameter(p_timescale, model_timestep) lower[m] = lower[m] * unit_factor upper[m] = upper[m] * unit_factor if hasproperty(appr, prm_name) - p_unit = Sindbad.Models.units(appr, prm_name) + p_unit = SindbadCore.Models.units(appr, prm_name) push!(unts_ori, p_unit) if ~isone(unit_factor) p_unit = replace(p_unit, p_timescale => model_timestep) diff --git a/lib/SindbadSetup/src/setupPools.jl b/SindbadSetup/src/setupPools.jl similarity index 100% rename from lib/SindbadSetup/src/setupPools.jl rename to SindbadSetup/src/setupPools.jl diff --git a/lib/SindbadSetup/src/setupTypes.jl b/SindbadSetup/src/setupTypes.jl similarity index 99% rename from lib/SindbadSetup/src/setupTypes.jl rename to SindbadSetup/src/setupTypes.jl index 9f70e80af..714559e20 100644 --- a/lib/SindbadSetup/src/setupTypes.jl +++ b/SindbadSetup/src/setupTypes.jl @@ -155,7 +155,7 @@ Retrieves the type instance for a given cost metric based on its name. """ function getTypeInstanceForCostMetric(option_name::String) opt_ss = toUpperCaseFirst(option_name) - struct_instance = getfield(Sindbad, opt_ss)() + struct_instance = getfield(SindbadCore, opt_ss)() return struct_instance end diff --git a/lib/SindbadSetup/src/updateParameters.jl b/SindbadSetup/src/updateParameters.jl similarity index 100% rename from lib/SindbadSetup/src/updateParameters.jl rename to SindbadSetup/src/updateParameters.jl diff --git a/SindbadTEM/LICENSE.md b/SindbadTEM/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadTEM/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/SindbadTEM/NOTICE.md b/SindbadTEM/NOTICE.md new file mode 100644 index 000000000..189d3d824 --- /dev/null +++ b/SindbadTEM/NOTICE.md @@ -0,0 +1 @@ +Copyright: Copyright (C) 2025 Max-Planck-Gesellschaft zur Förderung der Wissenschaften; Licensed under the EUPL, with extension of article 5 (compatibility clause) to any licence for distributing derivative works that have been produced by the normal use of the Work as a library. \ No newline at end of file diff --git a/lib/SindbadTEM/Project.toml b/SindbadTEM/Project.toml similarity index 66% rename from lib/SindbadTEM/Project.toml rename to SindbadTEM/Project.toml index 7ed386282..ff4bf4342 100644 --- a/lib/SindbadTEM/Project.toml +++ b/SindbadTEM/Project.toml @@ -8,17 +8,15 @@ ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" SindbadSetup = "2b7f2987-8a1e-48b4-8a02-cc9e7c4eeb1c" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" ThreadPools = "b189fb0b-2eb5-4ed4-bc0c-d34c51242431" TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" [sources] -Sindbad = {path = "../.."} -SindbadData = {path = "../../lib/SindbadData"} -SindbadMetrics = {path = "../../lib/SindbadMetrics"} -SindbadSetup = {path = "../../lib/SindbadSetup"} -SindbadUtils = {path = "../../lib/SindbadUtils"} +SindbadCore = {path = "../SindbadCore"} +SindbadData = {path = "../SindbadData"} +SindbadMetrics = {path = "../SindbadMetrics"} +SindbadSetup = {path = "../SindbadSetup"} \ No newline at end of file diff --git a/lib/SindbadTEM/src/SindbadTEM.jl b/SindbadTEM/src/SindbadTEM.jl similarity index 98% rename from lib/SindbadTEM/src/SindbadTEM.jl rename to SindbadTEM/src/SindbadTEM.jl index 101eed0ae..16f8f5188 100644 --- a/lib/SindbadTEM/src/SindbadTEM.jl +++ b/SindbadTEM/src/SindbadTEM.jl @@ -55,8 +55,7 @@ module SindbadTEM using ComponentArrays using NLsolve using ProgressMeter - using Sindbad - using SindbadUtils + using SindbadCore using SindbadSetup using SindbadData: YAXArrays @@ -65,7 +64,6 @@ module SindbadTEM include("utilsTEM.jl") include("deriveSpinupForcing.jl") include("prepTEMOut.jl") - include("runModels.jl") include("prepTEM.jl") include("runTEMLoc.jl") include("runTEMSpace.jl") diff --git a/lib/SindbadTEM/src/deriveSpinupForcing.jl b/SindbadTEM/src/deriveSpinupForcing.jl similarity index 100% rename from lib/SindbadTEM/src/deriveSpinupForcing.jl rename to SindbadTEM/src/deriveSpinupForcing.jl diff --git a/lib/SindbadTEM/src/prepTEM.jl b/SindbadTEM/src/prepTEM.jl similarity index 99% rename from lib/SindbadTEM/src/prepTEM.jl rename to SindbadTEM/src/prepTEM.jl index 184e6bb33..77f612f53 100644 --- a/lib/SindbadTEM/src/prepTEM.jl +++ b/SindbadTEM/src/prepTEM.jl @@ -40,8 +40,8 @@ function addErrorCatcher end function addErrorCatcher(loc_land, ::DoDebugModel) # print land when debug model is true/on - Sindbad.eval(:(error_catcher = [])) - push!(Sindbad.error_catcher, loc_land) + SindbadCore.eval(:(error_catcher = [])) + push!(SindbadCore.error_catcher, loc_land) tcPrint(loc_land) return nothing end diff --git a/lib/SindbadTEM/src/prepTEMOut.jl b/SindbadTEM/src/prepTEMOut.jl similarity index 100% rename from lib/SindbadTEM/src/prepTEMOut.jl rename to SindbadTEM/src/prepTEMOut.jl diff --git a/lib/SindbadTEM/src/runTEMCube.jl b/SindbadTEM/src/runTEMCube.jl similarity index 100% rename from lib/SindbadTEM/src/runTEMCube.jl rename to SindbadTEM/src/runTEMCube.jl diff --git a/lib/SindbadTEM/src/runTEMLoc.jl b/SindbadTEM/src/runTEMLoc.jl similarity index 100% rename from lib/SindbadTEM/src/runTEMLoc.jl rename to SindbadTEM/src/runTEMLoc.jl diff --git a/lib/SindbadTEM/src/runTEMSpace.jl b/SindbadTEM/src/runTEMSpace.jl similarity index 100% rename from lib/SindbadTEM/src/runTEMSpace.jl rename to SindbadTEM/src/runTEMSpace.jl diff --git a/lib/SindbadTEM/src/spinupSequence.jl b/SindbadTEM/src/spinupSequence.jl similarity index 100% rename from lib/SindbadTEM/src/spinupSequence.jl rename to SindbadTEM/src/spinupSequence.jl diff --git a/lib/SindbadTEM/src/spinupTEM.jl b/SindbadTEM/src/spinupTEM.jl similarity index 96% rename from lib/SindbadTEM/src/spinupTEM.jl rename to SindbadTEM/src/spinupTEM.jl index 3d5151483..9f9682b53 100644 --- a/lib/SindbadTEM/src/spinupTEM.jl +++ b/SindbadTEM/src/spinupTEM.jl @@ -29,7 +29,7 @@ function (cEco_spin::Spinup_cEco)(pout, p) @rep_elem pout[l] ⇒ (cEco, lc, :cEco) end @pack_nt cEco ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, helpers, land.models.c_model) + land = SindbadCore.adjustPackPoolComponents(land, helpers, land.models.c_model) update_init = timeLoopTEMSpinup(cEco_spin.models, cEco_spin.forcing, cEco_spin.loc_forcing_t, land, cEco_spin.tem_info, n_timesteps) pout .= log.(update_init.pools.cEco) @@ -61,7 +61,7 @@ function (cEco_TWS_spin::Spinup_cEco_TWS)(pout, p) @rep_elem pout[l] ⇒ (cEco, lc, :cEco) end @pack_nt cEco ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, helpers, land.models.c_model) + land = SindbadCore.adjustPackPoolComponents(land, helpers, land.models.c_model) TWS = land.pools.TWS TWS_prev = cEco_TWS_spin.TWS @@ -70,7 +70,7 @@ function (cEco_TWS_spin::Spinup_cEco_TWS)(pout, p) end @pack_nt TWS ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, helpers, land.models.w_model) + land = SindbadCore.adjustPackPoolComponents(land, helpers, land.models.w_model) update_init = timeLoopTEMSpinup(cEco_TWS_spin.models, cEco_TWS_spin.forcing, cEco_TWS_spin.loc_forcing_t, land, cEco_TWS_spin.tem_info, n_timesteps) @@ -103,7 +103,7 @@ function (TWS_spin::Spinup_TWS)(pout, p) @rep_elem maxZero(p[l]) ⇒ (TWS, lc, :TWS) end @pack_nt TWS ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, helpers, land.models.w_model) + land = SindbadCore.adjustPackPoolComponents(land, helpers, land.models.w_model) update_init = timeLoopTEMSpinup(TWS_spin.models, TWS_spin.forcing, TWS_spin.loc_forcing_t, land, TWS_spin.tem_info, n_timesteps) pout .= update_init.pools.TWS return nothing @@ -230,7 +230,7 @@ function spinup(spinup_models, spinup_forcing, loc_forcing_t, land, tem_info, n_ TWS = r.zero TWS = oftype(land.pools.TWS, TWS) @pack_nt TWS ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, tem_info.model_helpers, land.models.w_model) + land = SindbadCore.adjustPackPoolComponents(land, tem_info.model_helpers, land.models.w_model) return land end @@ -251,8 +251,8 @@ function spinup(spinup_models, spinup_forcing, loc_forcing_t, land, tem_info, n_ TWS_prev = cEco_TWS_spin.TWS TWS = oftype(land.pools.TWS, TWS_prev) @pack_nt TWS ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, tem_info.model_helpers, land.models.c_model) - land = Sindbad.adjustPackPoolComponents(land, tem_info.model_helpers, land.models.w_model) + land = SindbadCore.adjustPackPoolComponents(land, tem_info.model_helpers, land.models.c_model) + land = SindbadCore.adjustPackPoolComponents(land, tem_info.model_helpers, land.models.w_model) return land end @@ -264,7 +264,7 @@ function spinup(spinup_models, spinup_forcing, loc_forcing_t, land, tem_info, n_ cEco = exp.(r.zero) cEco = oftype(land.pools.cEco, cEco) @pack_nt cEco ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, tem_info.model_helpers, land.models.c_model) + land = SindbadCore.adjustPackPoolComponents(land, tem_info.model_helpers, land.models.c_model) return land end @@ -293,7 +293,7 @@ function spinup(_, _, _, land, helpers, _, ::EtaScaleAH) @rep_elem cVegNew ⇒ (cEco, cVegZix, :cEco) end @pack_nt cEco ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, helpers, land.models.c_model) + land = SindbadCore.adjustPackPoolComponents(land, helpers, land.models.c_model) @pack_nt cEco_prev ⇒ land.states return land end @@ -320,7 +320,7 @@ function spinup(_, _, _, land, helpers, _, ::EtaScaleAHCWD) @rep_elem cVegNew ⇒ (cEco, cVegZix, :cEco) end @pack_nt cEco ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, helpers, land.models.c_model) + land = SindbadCore.adjustPackPoolComponents(land, helpers, land.models.c_model) @pack_nt cEco_prev ⇒ land.states return land end @@ -353,7 +353,7 @@ function spinup(_, _, _, land, helpers, _, ::EtaScaleA0H) end @pack_nt cEco ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, helpers, land.models.c_model) + land = SindbadCore.adjustPackPoolComponents(land, helpers, land.models.c_model) @pack_nt cEco_prev ⇒ land.states return land end @@ -382,7 +382,7 @@ function spinup(_, _, _, land, helpers, _, ::EtaScaleA0HCWD) end @pack_nt cEco ⇒ land.pools - land = Sindbad.adjustPackPoolComponents(land, helpers, land.models.c_model) + land = SindbadCore.adjustPackPoolComponents(land, helpers, land.models.c_model) @pack_nt cEco_prev ⇒ land.states return land end diff --git a/lib/SindbadTEM/src/utilsTEM.jl b/SindbadTEM/src/utilsTEM.jl similarity index 100% rename from lib/SindbadTEM/src/utilsTEM.jl rename to SindbadTEM/src/utilsTEM.jl diff --git a/lib/SindbadTEM/test/Project.toml b/SindbadTEM/test/Project.toml similarity index 100% rename from lib/SindbadTEM/test/Project.toml rename to SindbadTEM/test/Project.toml diff --git a/lib/SindbadTEM/test/test_update_parameters.jl b/SindbadTEM/test/test_update_parameters.jl similarity index 100% rename from lib/SindbadTEM/test/test_update_parameters.jl rename to SindbadTEM/test/test_update_parameters.jl diff --git a/SindbadVisuals/LICENSE.md b/SindbadVisuals/LICENSE.md new file mode 100644 index 000000000..c29ce2f83 --- /dev/null +++ b/SindbadVisuals/LICENSE.md @@ -0,0 +1,287 @@ + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. \ No newline at end of file diff --git a/lib/SindbadVisuals/Project.toml b/SindbadVisuals/Project.toml similarity index 56% rename from lib/SindbadVisuals/Project.toml rename to SindbadVisuals/Project.toml index f04aac664..c8e43ac8a 100644 --- a/lib/SindbadVisuals/Project.toml +++ b/SindbadVisuals/Project.toml @@ -5,14 +5,12 @@ version = "0.1.0" [deps] Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" [sources] -Sindbad = {path = "../.."} -SindbadUtils = {path = "../../lib/SindbadUtils"} -SindbadMetrics = {path = "../../lib/SindbadMetrics"} +SindbadCore = {path = "../SindbadCore"} +SindbadMetrics = {path = "../SindbadMetrics"} [compat] Plots = "1.40.13" diff --git a/lib/SindbadVisuals/src/SindbadVisuals.jl b/SindbadVisuals/src/SindbadVisuals.jl similarity index 98% rename from lib/SindbadVisuals/src/SindbadVisuals.jl rename to SindbadVisuals/src/SindbadVisuals.jl index 5ab5bb7e0..39b477784 100644 --- a/lib/SindbadVisuals/src/SindbadVisuals.jl +++ b/SindbadVisuals/src/SindbadVisuals.jl @@ -29,8 +29,7 @@ using SindbadVisuals ``` """ module SindbadVisuals - using Sindbad - using SindbadUtils + using SindbadCore using SindbadMetrics # using GLMakie # @reexport using GLMakie.Makie diff --git a/lib/SindbadVisuals/src/plotFromSindbadInfo.jl b/SindbadVisuals/src/plotFromSindbadInfo.jl similarity index 98% rename from lib/SindbadVisuals/src/plotFromSindbadInfo.jl rename to SindbadVisuals/src/plotFromSindbadInfo.jl index cc17f01af..84f1e8876 100644 --- a/lib/SindbadVisuals/src/plotFromSindbadInfo.jl +++ b/SindbadVisuals/src/plotFromSindbadInfo.jl @@ -142,14 +142,14 @@ function plotIOModelStructure(info, which_function=:compute, which_field=[:input for (m_i, model_name) in enumerate(model_names) if isa(which_field, String) the_fields = Symbol.(split(which_field, "_")) - model_variables = Sindbad.orD() + model_variables = SindbadCore.orD() foreach(the_fields) do w_field model_variables[w_field] = in_out_models[model_name][w_field] end else model_variables_in = in_out_models[model_name][which_field] end - if isa(model_variables, Sindbad.orD) + if isa(model_variables, SindbadCore.orD) model_variables_in = model_variables[:input] model_variables_out = model_variables[:output] end diff --git a/lib/SindbadVisuals/src/plotOutputData.jl b/SindbadVisuals/src/plotOutputData.jl similarity index 100% rename from lib/SindbadVisuals/src/plotOutputData.jl rename to SindbadVisuals/src/plotOutputData.jl diff --git a/lib/SindbadVisuals/src/plotOutputUsingPlots.jl b/SindbadVisuals/src/plotOutputUsingPlots.jl similarity index 100% rename from lib/SindbadVisuals/src/plotOutputUsingPlots.jl rename to SindbadVisuals/src/plotOutputUsingPlots.jl diff --git a/docs/Project.toml b/docs/Project.toml index 3b8810f57..e1df9dd07 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -4,7 +4,7 @@ DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" DocumenterVitepress = "4710194d-e776-4893-9690-8d956a29c365" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadExperiment = "bbd31fc6-1b7a-43f2-b792-0273fef35116" SindbadML = "eb1d8004-2d42-4eef-b369-ed0645c101e8" @@ -12,17 +12,15 @@ SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" SindbadOptimization = "64fff8bd-0c13-402c-aa96-b97d0bc3655c" SindbadSetup = "2b7f2987-8a1e-48b4-8a02-cc9e7c4eeb1c" SindbadTEM = "f6108451-10cb-42fa-b0c1-67671cf08f15" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" SindbadVisuals = "49d56b06-c9ff-43e2-9c93-8639e8c3cbdc" [sources] -Sindbad = {path = "../"} -SindbadData = {path = "../lib/SindbadData"} -SindbadExperiment = {path = "../lib/SindbadExperiment"} -SindbadML = {path = "../lib/SindbadML"} -SindbadMetrics = {path = "../lib/SindbadMetrics"} -SindbadOptimization = {path = "../lib/SindbadOptimization"} -SindbadSetup = {path = "../lib/SindbadSetup"} -SindbadTEM = {path = "../lib/SindbadTEM"} -SindbadUtils = {path = "../lib/SindbadUtils"} -SindbadVisuals = {path = "../lib/SindbadVisuals"} +SindbadCore = {path = "../SindbadCore"} +SindbadData = {path = "../SindbadData"} +SindbadExperiment = {path = "../SindbadExperiment"} +SindbadML = {path = "../SindbadML"} +SindbadMetrics = {path = "../SindbadMetrics"} +SindbadOptimization = {path = "../SindbadOptimization"} +SindbadSetup = {path = "../SindbadSetup"} +SindbadTEM = {path = "../SindbadTEM"} +SindbadVisuals = {path = "../SindbadVisuals"} diff --git a/docs/gen_lib_md.jl b/docs/gen_lib_md.jl index 898370216..2cff87ea7 100644 --- a/docs/gen_lib_md.jl +++ b/docs/gen_lib_md.jl @@ -1,6 +1,6 @@ using SindbadExperiment using SindbadML -packages_list = (:Sindbad, :SindbadUtils, :SindbadTEM, :SindbadSetup, :SindbadData, :SindbadOptimization, :SindbadExperiment, :SindbadML, :SindbadMetrics) +packages_list = (:SindbadCore, :SindbadTEM, :SindbadSetup, :SindbadData, :SindbadOptimization, :SindbadExperiment, :SindbadML, :SindbadMetrics) mkpath("./src/pages/code_gen") lib_path = joinpath(@__DIR__, "../lib") @@ -50,7 +50,7 @@ open(joinpath(@__DIR__, "./src/pages/code_gen/SindbadModels.md"), "w") do o_file write(o_file, "## Available Models\n\n") - sindbad_models_from_types = nameof.(Sindbad.subtypes(Sindbad.LandEcosystem)) + sindbad_models_from_types = nameof.(SindbadCore.subtypes(SindbadCore.LandEcosystem)) foreach(sort(collect(sindbad_models_from_types))) do sm sms = string(sm) write(o_file, "### $(sm)\n\n") @@ -59,7 +59,7 @@ open(joinpath(@__DIR__, "./src/pages/code_gen/SindbadModels.md"), "w") do o_file write(o_file, ":::details $(sm) approaches\n\n") write(o_file, ":::tabs\n\n") - foreach(Sindbad.subtypes(getfield(Sindbad, sm))) do apr + foreach(SindbadCore.subtypes(getfield(Sindbad, sm))) do apr write(o_file, "== $(apr)\n") write(o_file, "```@docs\n$(apr)\n```\n") @@ -68,6 +68,6 @@ open(joinpath(@__DIR__, "./src/pages/code_gen/SindbadModels.md"), "w") do o_file write(o_file, "\n----\n\n") end write(o_file, "## Internal\n\n") - write(o_file, "```@meta\nCollapsedDocStrings = false\nDocTestSetup= quote\nusing Sindbad.Models\nend\n```\n") - write(o_file, "\n```@autodocs\nModules = [Sindbad.Models]\nPublic = false\n```") + write(o_file, "```@meta\nCollapsedDocStrings = false\nDocTestSetup= quote\nusing SindbadCore.Models\nend\n```\n") + write(o_file, "\n```@autodocs\nModules = [SindbadCore.Models]\nPublic = false\n```") end \ No newline at end of file diff --git a/docs/gen_models_md.jl b/docs/gen_models_md.jl index 0cc700b7c..8005aad83 100644 --- a/docs/gen_models_md.jl +++ b/docs/gen_models_md.jl @@ -1,4 +1,4 @@ -using Sindbad +using SindbadCore using InteractiveUtils open(joinpath(@__DIR__, "./src/pages/code/models.md"), "w") do o_file # write(o_file, "## Models\n\n") @@ -6,7 +6,7 @@ open(joinpath(@__DIR__, "./src/pages/code/models.md"), "w") do o_file write(o_file, "## Available Models\n\n") - sindbad_models_from_types = nameof.(Sindbad.subtypes(Sindbad.LandEcosystem)) + sindbad_models_from_types = nameof.(SindbadCore.subtypes(SindbadCore.LandEcosystem)) foreach(sort(collect(sindbad_models_from_types))) do sm sms = string(sm) write(o_file, "### $(sm)\n\n") @@ -15,7 +15,7 @@ open(joinpath(@__DIR__, "./src/pages/code/models.md"), "w") do o_file write(o_file, ":::details $(sm) approaches\n\n") write(o_file, ":::tabs\n\n") - foreach(Sindbad.subtypes(getfield(Sindbad, sm))) do apr + foreach(SindbadCore.subtypes(getfield(SindbadCore, sm))) do apr write(o_file, "== $(apr)\n") write(o_file, "```@docs\n$(apr)\n```\n") @@ -24,6 +24,6 @@ open(joinpath(@__DIR__, "./src/pages/code/models.md"), "w") do o_file write(o_file, "\n----\n\n") end write(o_file, "## Internal\n\n") - write(o_file, "```@meta\nCollapsedDocStrings = false\nDocTestSetup= quote\nusing Sindbad.Models\nend\n```\n") - write(o_file, "\n```@autodocs\nModules = [Sindbad.Models]\nPublic = false\n```") + write(o_file, "```@meta\nCollapsedDocStrings = false\nDocTestSetup= quote\nusing SindbadCore.Models\nend\n```\n") + write(o_file, "\n```@autodocs\nModules = [SindbadCore.Models]\nPublic = false\n```") end \ No newline at end of file diff --git a/docs/make.jl b/docs/make.jl index 510e868b0..c7373dcd4 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,4 +1,10 @@ -using Sindbad +using Pkg +cd(@__DIR__) +Pkg.activate(".") +Pkg.instantiate() +Pkg.precompile() + +using SindbadCore using SindbadTEM using SindbadData using SindbadSetup @@ -12,8 +18,6 @@ using InteractiveUtils using DocumenterVitepress using Documenter using DocStringExtensions -# using DocumenterMermaid -# dev ../ ../lib/SindbadUtils ../lib/SindbadData ../lib/SindbadMetrics ../lib/SindbadSetup ../lib/SindbadTEM ../lib/SindbadML makedocs(; sitename="Sindbad", authors="Sindbad Development Team", @@ -21,7 +25,6 @@ makedocs(; sitename="Sindbad", format=DocumenterVitepress.MarkdownVitepress( repo = "github.com/EarthyScience/SINDBAD", ), - remotes=nothing, draft=false, warnonly=true, source="src", @@ -37,9 +40,9 @@ if !isdir(joinpath(final_site_dir, "/pages/concept/sindbad_info")) cp(joinpath(@__DIR__,"src/pages/concept/sindbad_info"), joinpath(final_site_dir, "pages/concept/sindbad_info"); force=true) end -deploydocs(; +DocumenterVitepress.deploydocs(; repo = "github.com/EarthyScience/SINDBAD", # this must be the full URL! - target = "build", # this is where Vitepress stores its output + target = joinpath(@__DIR__, "build"), # this is where Vitepress stores its output branch = "gh-pages", devbranch = "main", push_preview = true diff --git a/docs/src/.vitepress/config.mts b/docs/src/.vitepress/config.mts index 9e1cdaef4..105c6832c 100644 --- a/docs/src/.vitepress/config.mts +++ b/docs/src/.vitepress/config.mts @@ -126,7 +126,7 @@ const sidebar = [ ] export default defineConfig({ - base: '/', + base: 'REPLACE_ME_DOCUMENTER_VITEPRESS', title: "SINDBAD", description: "A model-data integration framework for terrestrial ecosystem processes", lastUpdated: true, @@ -139,6 +139,9 @@ export default defineConfig({ ], vite: { + define: { + __DEPLOY_ABSPATH__: JSON.stringify('REPLACE_ME_DOCUMENTER_VITEPRESS_DEPLOY_ABSPATH'), + }, resolve: { alias: { '@': path.resolve(__dirname, '../components') diff --git a/docs/src/pages/code/models.md b/docs/src/pages/code/models.md index d69fa982c..1f16ab568 100644 --- a/docs/src/pages/code/models.md +++ b/docs/src/pages/code/models.md @@ -1,5 +1,5 @@ ```@docs -Sindbad.Models +SindbadCore.Models ``` ## Available Models @@ -2201,11 +2201,11 @@ waterBalance_simple ```@meta CollapsedDocStrings = false DocTestSetup= quote -using Sindbad.Models +using SindbadCore.Models end ``` ```@autodocs -Modules = [Sindbad.Models] +Modules = [SindbadCore.Models] Public = false ``` \ No newline at end of file diff --git a/docs/src/pages/code/sindbad.md b/docs/src/pages/code/sindbad.md index 30acab771..e354c01b1 100644 --- a/docs/src/pages/code/sindbad.md +++ b/docs/src/pages/code/sindbad.md @@ -7,7 +7,7 @@ Sindbad ```@meta DocTestSetup= quote -using Sindbad +using SindbadCore end ``` @@ -22,7 +22,7 @@ Filter = f -> !(f === Sindbad) CollapsedDocStrings = false DocTestSetup= quote -using Sindbad +using SindbadCore end ``` diff --git a/docs/src/pages/code/types.md b/docs/src/pages/code/types.md index 1553edd3c..3b9febc17 100644 --- a/docs/src/pages/code/types.md +++ b/docs/src/pages/code/types.md @@ -1,19 +1,19 @@ ```@docs -Sindbad.Types +SindbadCore.Types ``` ## Exported ```@meta DocTestSetup= quote -using Sindbad.Types +using SindbadCore.Types end ``` ```@autodocs -Modules = [Sindbad.Types] +Modules = [SindbadCore.Types] Private = false -Filter = f -> !(f === Sindbad.Types) +Filter = f -> !(f === SindbadCore.Types) ``` ## Internal @@ -21,11 +21,11 @@ Filter = f -> !(f === Sindbad.Types) CollapsedDocStrings = false DocTestSetup= quote -using Sindbad.Types +using SindbadCore.Types end ``` ```@autodocs -Modules = [Sindbad.Types] +Modules = [SindbadCore.Types] Public = false ``` \ No newline at end of file diff --git a/docs/src/pages/concept/TEM.md b/docs/src/pages/concept/TEM.md index 2a4ca398d..98651b726 100644 --- a/docs/src/pages/concept/TEM.md +++ b/docs/src/pages/concept/TEM.md @@ -89,7 +89,7 @@ Experiments can select models from: ::: tip Viewing Available Models ```julia -using Sindbad +using SindbadCore standard_sindbad_models all_available_sindbad_models ``` diff --git a/docs/src/pages/develop/conventions.md b/docs/src/pages/develop/conventions.md index e3181a31f..c67c1c742 100755 --- a/docs/src/pages/develop/conventions.md +++ b/docs/src/pages/develop/conventions.md @@ -186,7 +186,7 @@ When working with SINDBAD, it is highly recommended to utilize the built-in func Check the documentation of the function for further details as: ```julia -using Sindbad +using SindbadCore ?generateSindbadApproach ``` ::: diff --git a/docs/src/pages/develop/cost_function.md b/docs/src/pages/develop/cost_function.md index 0ba6f6444..47b0662a7 100644 --- a/docs/src/pages/develop/cost_function.md +++ b/docs/src/pages/develop/cost_function.md @@ -5,7 +5,7 @@ This documentation provides a framework for adding new cost calculation methods :::tip For a more detailed view of available cost methods and their purposes, use: ```julia -using Sindbad +using SindbadCore showMethodsOf(CostMethod) ``` This will display a formatted list of all cost methods and their descriptions. diff --git a/docs/src/pages/develop/cost_metrics.md b/docs/src/pages/develop/cost_metrics.md index 876be9b5a..c1833f164 100644 --- a/docs/src/pages/develop/cost_metrics.md +++ b/docs/src/pages/develop/cost_metrics.md @@ -15,7 +15,7 @@ To view the list of available metrics: :::tip To list all available cost metrics and their purposes, use: ```julia -using Sindbad +using SindbadCore showMethodsOf(PerfMetric) ``` This will display a formatted list of all cost metrics and their descriptions, including: diff --git a/docs/src/pages/develop/experiments.md b/docs/src/pages/develop/experiments.md index bc3498596..f34247ca8 100644 --- a/docs/src/pages/develop/experiments.md +++ b/docs/src/pages/develop/experiments.md @@ -236,7 +236,7 @@ SINDBAD provides several functions for running experiments with different config :::tip To list all available experiment methods and their purposes, use: ```julia -using Sindbad +using SindbadCore showMethodsOf(RunFlag) ``` This will display a formatted list of all experiment methods and their descriptions. diff --git a/docs/src/pages/develop/helpers.md b/docs/src/pages/develop/helpers.md index ec277f116..80883525e 100644 --- a/docs/src/pages/develop/helpers.md +++ b/docs/src/pages/develop/helpers.md @@ -260,7 +260,7 @@ An array of all defined things in the SINDBAD framework that match the specified defined_types = getSindbadDefinitions(Sindbad, Type) # Get all functions in a specific module -functions = getSindbadDefinitions(Sindbad.Models, Function) +functions = getSindbadDefinitions(SindbadCore.Models, Function) # Get all definitions including external ones all_definitions = getSindbadDefinitions(Sindbad, Any, internal_only=false) diff --git a/docs/src/pages/develop/install.md b/docs/src/pages/develop/install.md index 503695f28..d121e48e8 100644 --- a/docs/src/pages/develop/install.md +++ b/docs/src/pages/develop/install.md @@ -18,10 +18,10 @@ julia> ] pkg > st Sindbad ```` -## Start using Sindbad +## Start using SindbadCore Sindbad comes with several predefined models, which you can use individually or in combination. ```julia -using Sindbad +using SindbadCore ``` \ No newline at end of file diff --git a/docs/src/pages/develop/model_approach.md b/docs/src/pages/develop/model_approach.md index 9969903d2..f8b5b7ce7 100644 --- a/docs/src/pages/develop/model_approach.md +++ b/docs/src/pages/develop/model_approach.md @@ -8,7 +8,7 @@ When working with SINDBAD, it is highly recommended to utilize the built-in func Check the documentation of the function for further details as: ```julia -using Sindbad +using SindbadCore ?generateSindbadApproach ``` ::: @@ -18,7 +18,7 @@ using Sindbad To view available model approaches and their implementations: ```julia -using Sindbad: showMethodsOf +using SindbadCore: showMethodsOf showMethodsOf(LandEcosystem) ``` diff --git a/docs/src/pages/develop/optimization_method.md b/docs/src/pages/develop/optimization_method.md index d3f74804c..4a890aece 100644 --- a/docs/src/pages/develop/optimization_method.md +++ b/docs/src/pages/develop/optimization_method.md @@ -80,7 +80,7 @@ Using a JSON file for `algorithm_optimization` allows for: To list all available optimization methods and their purposes, use: ```julia -using Sindbad +using SindbadCore showMethodsOf(OptimizationMethod) ``` This will display a formatted list of all optimization methods and their descriptions. diff --git a/docs/src/pages/develop/spinup.md b/docs/src/pages/develop/spinup.md index eda9ac406..905732e2f 100644 --- a/docs/src/pages/develop/spinup.md +++ b/docs/src/pages/develop/spinup.md @@ -48,7 +48,7 @@ using SindbadTEM ::: tip To list all available spinup methods and their purposes, use: ```julia -using Sindbad +using SindbadCore showMethodsOf(SpinupMode) ``` This will display a formatted list of all spinup methods and their descriptions. diff --git a/examples/exp_OTB/Project.toml b/examples/exp_OTB/Project.toml index 7dc0f6ff1..2c60baba7 100644 --- a/examples/exp_OTB/Project.toml +++ b/examples/exp_OTB/Project.toml @@ -4,7 +4,7 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" QuasiMonteCarlo = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadExperiment = "bbd31fc6-1b7a-43f2-b792-0273fef35116" SindbadML = "eb1d8004-2d42-4eef-b369-ed0645c101e8" @@ -16,7 +16,7 @@ SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" [sources] -Sindbad = {path = "../.."} +SindbadCore = {path = "../.."} SindbadData = {path = "../../lib/SindbadData"} SindbadExperiment = {path = "../../lib/SindbadExperiment"} SindbadML = {path = "../../lib/SindbadML"} diff --git a/examples/exp_Trautmann2022/experiment_Trautmann2022.jl b/examples/exp_Trautmann2022/experiment_Trautmann2022.jl index e0b25a226..16914d0c0 100755 --- a/examples/exp_Trautmann2022/experiment_Trautmann2022.jl +++ b/examples/exp_Trautmann2022/experiment_Trautmann2022.jl @@ -1,5 +1,5 @@ using Revise -@time using Sindbad +@time using SindbadCore @time using SindbadData @time using SindbadTEM @time using SindbadExperiment diff --git a/examples/exp_WROASTED/Project.toml b/examples/exp_WROASTED/Project.toml index 3e84850df..ec9e8a670 100644 --- a/examples/exp_WROASTED/Project.toml +++ b/examples/exp_WROASTED/Project.toml @@ -12,7 +12,7 @@ ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" QuasiMonteCarlo = "8a4e6c94-4038-4cdc-81c3-7e6ffdb2a71b" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadExperiment = "bbd31fc6-1b7a-43f2-b792-0273fef35116" SindbadML = "eb1d8004-2d42-4eef-b369-ed0645c101e8" @@ -26,7 +26,7 @@ StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [sources] -Sindbad = {path = "../.."} +SindbadCore = {path = "../.."} SindbadData = {path = "../../lib/SindbadData"} SindbadExperiment = {path = "../../lib/SindbadExperiment"} SindbadML = {path = "../../lib/SindbadML"} diff --git a/examples/exp_WROASTED/experiment_WROASTED_priors.jl b/examples/exp_WROASTED/experiment_WROASTED_priors.jl index 937581912..06edd947c 100755 --- a/examples/exp_WROASTED/experiment_WROASTED_priors.jl +++ b/examples/exp_WROASTED/experiment_WROASTED_priors.jl @@ -37,7 +37,7 @@ info = getExperimentInfo(experiment_json; replace_info=replace_info); # note tha forcing = getForcing(info); -#Sindbad.eval(:(error_catcher = [])) +#SindbadCore.eval(:(error_catcher = [])) run_helpers = prepTEM(forcing, info); @time runTEM!(run_helpers.space_selected_models, run_helpers.space_forcing, run_helpers.space_spinup_forcing, run_helpers.loc_forcing_t, run_helpers.space_output, run_helpers.space_land, run_helpers.tem_info) diff --git a/examples/exp_WROASTED/run_WROASTED_fromML.jl b/examples/exp_WROASTED/run_WROASTED_fromML.jl index 59d8ff8a6..7841ed474 100755 --- a/examples/exp_WROASTED/run_WROASTED_fromML.jl +++ b/examples/exp_WROASTED/run_WROASTED_fromML.jl @@ -136,10 +136,10 @@ for site_index in sites parameter_table = info.optimization.parameter_table; opt_params = parameter_table.optimized parameter_names = parameter_table.name_full - parameter_maps = Sindbad.parsefile("examples/exp_WROASTED/settings_WROASTED/ml_to_jl_params.json"; dicttype=Sindbad.DataStructures.OrderedDict) + parameter_maps = SindbadCore.parsefile("examples/exp_WROASTED/settings_WROASTED/ml_to_jl_params.json"; dicttype=SindbadCore.DataStructures.OrderedDict) if isfile(ml_parameter_file) - ml_params = Sindbad.parsefile(ml_parameter_file; dicttype=Sindbad.DataStructures.OrderedDict)["parameter"] + ml_params = SindbadCore.parsefile(ml_parameter_file; dicttype=SindbadCore.DataStructures.OrderedDict)["parameter"] for opi in eachindex(opt_params) jl_name = parameter_names[opi] diff --git a/examples/exp_WROASTED/test_hourly.jl b/examples/exp_WROASTED/test_hourly.jl index cdd38de72..18a4dad37 100644 --- a/examples/exp_WROASTED/test_hourly.jl +++ b/examples/exp_WROASTED/test_hourly.jl @@ -1,5 +1,5 @@ using Revise -using Sindbad +using SindbadCore using SindbadExperiment using Plots toggleStackTraceNT() diff --git a/examples/exp_WROASTED/test_hourly_optimization.jl b/examples/exp_WROASTED/test_hourly_optimization.jl index 0568a6845..fc825cdab 100644 --- a/examples/exp_WROASTED/test_hourly_optimization.jl +++ b/examples/exp_WROASTED/test_hourly_optimization.jl @@ -1,5 +1,5 @@ using Revise -using Sindbad +using SindbadCore using SindbadExperiment using Plots toggleStackTraceNT() diff --git a/examples/exp_WROASTED/test_mixed_numbers.jl b/examples/exp_WROASTED/test_mixed_numbers.jl index 0c9b8534a..a1496d7c5 100644 --- a/examples/exp_WROASTED/test_mixed_numbers.jl +++ b/examples/exp_WROASTED/test_mixed_numbers.jl @@ -1,5 +1,5 @@ using Revise -using Sindbad +using SindbadCore using SindbadExperiment using Plots toggleStackTraceNT() diff --git a/examples/exp_WROASTED/test_threaded_LHS.jl b/examples/exp_WROASTED/test_threaded_LHS.jl index 52ec5d81a..2146d13ef 100644 --- a/examples/exp_WROASTED/test_threaded_LHS.jl +++ b/examples/exp_WROASTED/test_threaded_LHS.jl @@ -1,5 +1,5 @@ using Revise -using Sindbad +using SindbadCore using SindbadExperiment using Plots using QuasiMonteCarlo diff --git a/examples/exp_WROASTED/test_threaded_gsa.jl b/examples/exp_WROASTED/test_threaded_gsa.jl index 403e74382..7c99255b8 100644 --- a/examples/exp_WROASTED/test_threaded_gsa.jl +++ b/examples/exp_WROASTED/test_threaded_gsa.jl @@ -1,5 +1,5 @@ using Revise -using Sindbad +using SindbadCore using SindbadExperiment using Plots using QuasiMonteCarlo diff --git a/examples/exp_distri/Project.toml b/examples/exp_distri/Project.toml index 5b492e97b..732355bc1 100644 --- a/examples/exp_distri/Project.toml +++ b/examples/exp_distri/Project.toml @@ -10,7 +10,7 @@ Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadExperiment = "bbd31fc6-1b7a-43f2-b792-0273fef35116" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" diff --git a/examples/exp_fluxnet_hybrid/Project.toml b/examples/exp_fluxnet_hybrid/Project.toml index 0f8924d69..262ca5e27 100644 --- a/examples/exp_fluxnet_hybrid/Project.toml +++ b/examples/exp_fluxnet_hybrid/Project.toml @@ -2,24 +2,21 @@ CMAEvolutionStrategy = "8d3b24bd-414e-49e0-94fb-163cc3a3e411" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" GCMAES = "4aa9d100-eb0f-11e8-15f1-25748831eb3b" -GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadML = "eb1d8004-2d42-4eef-b369-ed0645c101e8" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" SindbadOptimization = "64fff8bd-0c13-402c-aa96-b97d0bc3655c" SindbadSetup = "2b7f2987-8a1e-48b4-8a02-cc9e7c4eeb1c" SindbadTEM = "f6108451-10cb-42fa-b0c1-67671cf08f15" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" [sources] -Sindbad = {path = "../.."} -SindbadData = {path = "../../lib/SindbadData"} -SindbadML = {path = "../../lib/SindbadML"} -SindbadMetrics = {path = "../../lib/SindbadMetrics"} -SindbadOptimization = {path = "../../lib/SindbadOptimization"} -SindbadSetup = {path = "../../lib/SindbadSetup"} -SindbadTEM = {path = "../../lib/SindbadTEM"} -SindbadUtils = {path = "../../lib/SindbadUtils"} +SindbadCore = {path = "../../SindbadCore"} +SindbadData = {path = "../../SindbadData"} +SindbadML = {path = "../../SindbadML"} +SindbadMetrics = {path = "../../SindbadMetrics"} +SindbadOptimization = {path = "../../SindbadOptimization"} +SindbadSetup = {path = "../../SindbadSetup"} +SindbadTEM = {path = "../../SindbadTEM"} \ No newline at end of file diff --git a/examples/exp_fluxnet_hybrid/analysis/carbon_sums.jl b/examples/exp_fluxnet_hybrid/analysis/carbon_sums.jl index 2b48093d8..3db1f2f74 100644 --- a/examples/exp_fluxnet_hybrid/analysis/carbon_sums.jl +++ b/examples/exp_fluxnet_hybrid/analysis/carbon_sums.jl @@ -46,7 +46,7 @@ fig, ax, plt = barplot(sums_years ./ 10^15; color=:grey15, #? diff 1500 Mt C axis=(; ytickformat=values -> ["$(round(value, digits=1))Pg" for value in values]), figure=(; size=(1200, 400))) # ax.xticks = 2003:2015 -ax.title = "cFireTotal Sindbad.jl" +ax.title = "cFireTotal SindbadCore.jl" save("co2_rates_2003_2016_factor_Pg.png", fig) using JLD2 diff --git a/examples/exp_fluxnet_hybrid/analysis/fluxnet.jl b/examples/exp_fluxnet_hybrid/analysis/fluxnet.jl index 9c013044e..deeb75a4e 100644 --- a/examples/exp_fluxnet_hybrid/analysis/fluxnet.jl +++ b/examples/exp_fluxnet_hybrid/analysis/fluxnet.jl @@ -123,7 +123,7 @@ function plotFLUXNET(out_path, var_name; colormap=:haline) color_pp = 1.15*colorant"tan1" Label(grid_ax[1,1], rich("user ", color = color_pinfo, rich("⋅ $(p_info["simulation_by"])", color = color_pp), - rich(" Sindbad.jl ", color = color_pinfo, + rich(" SindbadCore.jl ", color = color_pinfo, rich("| v0.1.0", color = color_pp, rich(" julia ", color = color_pinfo, rich("⋅ $(p_info["julia"])", color = color_pp, @@ -204,7 +204,7 @@ function plotFLUXNETdepth(out_path, var_name; colormap=:haline) color_pp = 1.15*colorant"tan1" Label(fig[end, :], rich("user ", color = color_pinfo, rich("⋅ $(p_info["simulation_by"])", color = color_pp), - rich(" Sindbad.jl ", color = color_pinfo, + rich(" SindbadCore.jl ", color = color_pinfo, rich("| v0.1.0", color = color_pp, rich(" julia ", color = color_pinfo, rich("⋅ $(p_info["julia"])", color = color_pp, diff --git a/examples/exp_fluxnet_hybrid/analysis/fluxnet_lines.jl b/examples/exp_fluxnet_hybrid/analysis/fluxnet_lines.jl index 1fc543e40..9d50cb202 100644 --- a/examples/exp_fluxnet_hybrid/analysis/fluxnet_lines.jl +++ b/examples/exp_fluxnet_hybrid/analysis/fluxnet_lines.jl @@ -94,7 +94,7 @@ function plotFLUXNET(out_path, var_name; colormap=:haline, α = 1.0) color_pp = 1.15*colorant"tan1" Label(fig[end, :], rich("user ", color = color_pinfo, rich("⋅ $(p_info["simulation_by"])", color = color_pp), - rich(" Sindbad.jl ", color = color_pinfo, + rich(" SindbadCore.jl ", color = color_pinfo, rich("| v0.1.0", color = color_pp, rich(" julia ", color = color_pinfo, rich("⋅ $(p_info["julia"])", color = color_pp, @@ -162,7 +162,7 @@ function plotFLUXNETdepth(out_path, var_name; colormap=:haline) color_pp = 1.15*colorant"tan1" Label(fig[end, :], rich("user ", color = color_pinfo, rich("⋅ $(p_info["simulation_by"])", color = color_pp), - rich(" Sindbad.jl ", color = color_pinfo, + rich(" SindbadCore.jl ", color = color_pinfo, rich("| v0.1.0", color = color_pp, rich(" julia ", color = color_pinfo, rich("⋅ $(p_info["julia"])", color = color_pp, diff --git a/examples/exp_fluxnet_hybrid/analysis/justLines.jl b/examples/exp_fluxnet_hybrid/analysis/justLines.jl index 77b79754a..3041256e9 100644 --- a/examples/exp_fluxnet_hybrid/analysis/justLines.jl +++ b/examples/exp_fluxnet_hybrid/analysis/justLines.jl @@ -151,7 +151,7 @@ function plotLines(out_path, var_name, known_regions; color_pp = 1.15*colorant"tan1" Label(fig[end, :], rich("user ", color = color_pinfo, rich("⋅ $(p_info["simulation_by"])", color = color_pp), - rich(" Sindbad.jl ", color = color_pinfo, + rich(" SindbadCore.jl ", color = color_pinfo, rich("| v0.1.0", color = color_pp, rich(" julia ", color = color_pinfo, rich("⋅ $(p_info["julia"])", color = color_pp, diff --git a/examples/exp_fluxnet_hybrid/analysis/justMap.jl b/examples/exp_fluxnet_hybrid/analysis/justMap.jl index 7c0d263f2..814a848c2 100644 --- a/examples/exp_fluxnet_hybrid/analysis/justMap.jl +++ b/examples/exp_fluxnet_hybrid/analysis/justMap.jl @@ -227,7 +227,7 @@ function plotMap(name_extensions, var_name, out_path, t_index; colormap = :plasm color_pp = 1.15*colorant"tan1" Label(fig[end, :], rich("user ", color = color_pinfo, rich("⋅ $(p_info["simulation_by"])", color = color_pp), - rich(" Sindbad.jl ", color = color_pinfo, + rich(" SindbadCore.jl ", color = color_pinfo, rich("| v0.1.0", color = color_pp, rich(" julia ", color = color_pinfo, rich("⋅ $(p_info["julia"])", color = color_pp, diff --git a/examples/exp_fluxnet_hybrid/analysis/justMap_fire.jl b/examples/exp_fluxnet_hybrid/analysis/justMap_fire.jl index e2cc2af59..c5b3cb72b 100644 --- a/examples/exp_fluxnet_hybrid/analysis/justMap_fire.jl +++ b/examples/exp_fluxnet_hybrid/analysis/justMap_fire.jl @@ -228,7 +228,7 @@ function plotMap(name_extensions, var_name, out_path, t_index; colormap = :plasm color_pp = 1.15*colorant"tan1" Label(fig[end, :], rich("user ", color = color_pinfo, rich("⋅ $(p_info["simulation_by"])", color = color_pp), - rich(" Sindbad.jl ", color = color_pinfo, + rich(" SindbadCore.jl ", color = color_pinfo, rich("| v0.1.0", color = color_pp, rich(" julia ", color = color_pinfo, rich("⋅ $(p_info["julia"])", color = color_pp, diff --git a/examples/exp_fluxnet_hybrid/analysis/map_plot_ps.jl b/examples/exp_fluxnet_hybrid/analysis/map_plot_ps.jl index e2ef6641d..32bfab508 100644 --- a/examples/exp_fluxnet_hybrid/analysis/map_plot_ps.jl +++ b/examples/exp_fluxnet_hybrid/analysis/map_plot_ps.jl @@ -116,7 +116,7 @@ end # color_pp = 1.15*colorant"tan1" # Label(fig[end, :], rich("user ", color = color_pinfo, # rich("⋅ Lazaro", color = color_pp), -# rich(" Sindbad.jl ", color = color_pinfo, +# rich(" SindbadCore.jl ", color = color_pinfo, # rich("| v0.1.0", color = color_pp, # rich(" julia ", color = color_pinfo, # rich("⋅ 1.11", color = color_pp, diff --git a/examples/exp_fluxnet_hybrid/analysis/sums_gpp.jl b/examples/exp_fluxnet_hybrid/analysis/sums_gpp.jl index 7c263da55..705c7128a 100644 --- a/examples/exp_fluxnet_hybrid/analysis/sums_gpp.jl +++ b/examples/exp_fluxnet_hybrid/analysis/sums_gpp.jl @@ -35,7 +35,7 @@ fig, ax, plt = barplot(sums_years; color=:grey15, #? Mt C (megatonnes of carbon) axis=(; ytickformat=values -> ["$(round(value, digits=1))" for value in values]), figure=(; size=(1200, 400))) ax.xticks = 2003:2015 -ax.title = "gpp yearly Sindbad.jl" +ax.title = "gpp yearly SindbadCore.jl" save("co2_years_gpp_Pg.png", fig) diff --git a/examples/exp_fluxnet_hybrid/exp_fluxnet_hybrid_clean.jl b/examples/exp_fluxnet_hybrid/exp_fluxnet_hybrid_clean.jl index 6b3ccbc7e..eddeb999d 100644 --- a/examples/exp_fluxnet_hybrid/exp_fluxnet_hybrid_clean.jl +++ b/examples/exp_fluxnet_hybrid/exp_fluxnet_hybrid_clean.jl @@ -1,11 +1,9 @@ -using SindbadUtils using SindbadTEM using SindbadSetup using SindbadData using SindbadData.DimensionalData using SindbadData.AxisKeys using SindbadData.YAXArrays -# using SindbadTEM using SindbadML using SindbadML.JLD2 using ProgressMeter diff --git a/examples/exp_fluxnet_hybrid/exp_fluxnet_insitu_PF.jl b/examples/exp_fluxnet_hybrid/exp_fluxnet_insitu_PF.jl index c20bd2d5a..77b56c665 100644 --- a/examples/exp_fluxnet_hybrid/exp_fluxnet_insitu_PF.jl +++ b/examples/exp_fluxnet_hybrid/exp_fluxnet_insitu_PF.jl @@ -1,4 +1,4 @@ -using Sindbad +using SindbadCore using SindbadSetup using SindbadUtils using SindbadData diff --git a/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/Project.toml b/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/Project.toml index 848782165..ac104e2d1 100644 --- a/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/Project.toml +++ b/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/Project.toml @@ -12,7 +12,7 @@ Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadML = "eb1d8004-2d42-4eef-b369-ed0645c101e8" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" diff --git a/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/gen_wrosted_obs.jl b/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/gen_wrosted_obs.jl index ce83c8b2b..5f311ab32 100755 --- a/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/gen_wrosted_obs.jl +++ b/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/gen_wrosted_obs.jl @@ -1,4 +1,4 @@ -using Sindbad, SindbadTEM, SindbadOptimization +using SindbadCore, SindbadTEM, SindbadOptimization using YAXArrays, YAXArrayBase using AxisKeys using Flux diff --git a/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/nn_lux_from_ayoub.jl b/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/nn_lux_from_ayoub.jl index 4e8e37dbd..1b1e35e18 100755 --- a/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/nn_lux_from_ayoub.jl +++ b/examples/exp_fluxnet_hybrid/z-legacy_exp_hybridNN/nn_lux_from_ayoub.jl @@ -11,7 +11,7 @@ info = getExperimentInfo(experiment_json); forcing = getForcing(info); -# Sindbad.eval(:(error_catcher = [])); +# SindbadCore.eval(:(error_catcher = [])); op = prepTEMOut(info, forcing.helpers); observations = getObservation(info, forcing.helpers); obs_array = [Array(_o) for _o in observations.data]; # TODO: necessary now for performance because view of keyedarray is slow diff --git a/examples/exp_global/experiment_global.jl b/examples/exp_global/experiment_global.jl index b3358e366..8b2be5dc0 100755 --- a/examples/exp_global/experiment_global.jl +++ b/examples/exp_global/experiment_global.jl @@ -1,5 +1,5 @@ using Revise -@time using Sindbad +@time using SindbadCore @time using SindbadData @time using SindbadTEM @time using SindbadExperiment diff --git a/examples/exp_graf/Project.toml b/examples/exp_graf/Project.toml index a648e22f3..85453a41c 100644 --- a/examples/exp_graf/Project.toml +++ b/examples/exp_graf/Project.toml @@ -3,7 +3,7 @@ CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" FIGlet = "3064a664-84fe-4d92-92c7-ed492f3d8fae" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" SindbadData = "772b809f-5329-4bfd-a2e9-cc4714ce84b1" SindbadExperiment = "bbd31fc6-1b7a-43f2-b792-0273fef35116" SindbadMetrics = "7a8077d0-ecf5-44b0-95d4-89eadbafc35c" diff --git a/examples/exp_plots/Project.toml b/examples/exp_plots/Project.toml index 7f7871959..98cb43340 100644 --- a/examples/exp_plots/Project.toml +++ b/examples/exp_plots/Project.toml @@ -4,4 +4,4 @@ ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" SindbadTEM = "f6108451-10cb-42fa-b0c1-67671cf08f15" GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" SindbadOptimization = "64fff8bd-0c13-402c-aa96-b97d0bc3655c" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" +SindbadCore = "7e5cc002-9bc1-4508-860d-3c0816be375a" diff --git a/lib/SindbadData/LICENSE b/lib/SindbadData/LICENSE deleted file mode 100644 index e72bfddab..000000000 --- a/lib/SindbadData/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/lib/SindbadExperiment/LICENSE b/lib/SindbadExperiment/LICENSE deleted file mode 100644 index e72bfddab..000000000 --- a/lib/SindbadExperiment/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/lib/SindbadML/LICENSE b/lib/SindbadML/LICENSE deleted file mode 100644 index e72bfddab..000000000 --- a/lib/SindbadML/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/lib/SindbadML/README.md b/lib/SindbadML/README.md deleted file mode 100644 index e914a920b..000000000 --- a/lib/SindbadML/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Start developing this package - -First do - -```sh -(SindbadML) pkg> dev ../.. ../../lib/SindbadUtils/ ../../lib/SindbadData/ ../../lib/SindbadMetrics/ ../../lib/SindbadSetup/ ../../lib/SindbadTEM -``` -and then - -```sh -(SindbadML) pkg> instantiate -``` - -now, this should work - -```sh -julia > using SindbadML -``` \ No newline at end of file diff --git a/lib/SindbadMetrics/LICENSE b/lib/SindbadMetrics/LICENSE deleted file mode 100644 index e72bfddab..000000000 --- a/lib/SindbadMetrics/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/lib/SindbadOptimization/LICENSE b/lib/SindbadOptimization/LICENSE deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/SindbadOptimization/README.md b/lib/SindbadOptimization/README.md deleted file mode 100644 index 7344a7693..000000000 --- a/lib/SindbadOptimization/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# SINDBAD.jl -Optimization tools \ No newline at end of file diff --git a/lib/SindbadSetup/LICENSE b/lib/SindbadSetup/LICENSE deleted file mode 100644 index e72bfddab..000000000 --- a/lib/SindbadSetup/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/lib/SindbadSetup/README.md b/lib/SindbadSetup/README.md deleted file mode 100644 index a20afa3bb..000000000 --- a/lib/SindbadSetup/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# SindbadSetup - -## Start developing this package - -First do - -```sh -(SindbadSetup) pkg> dev ../.. ../../lib/SindbadUtils/ ../../lib/SindbadMetrics/ -``` -and then - -```sh -(SindbadSetup) pkg> instantiate -``` - -now, this should work - -```sh -julia > using SindbadSetup -``` \ No newline at end of file diff --git a/lib/SindbadTEM/LICENSE b/lib/SindbadTEM/LICENSE deleted file mode 100644 index e72bfddab..000000000 --- a/lib/SindbadTEM/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/lib/SindbadTEM/README.md b/lib/SindbadTEM/README.md deleted file mode 100644 index f3e291302..000000000 --- a/lib/SindbadTEM/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# SindbadTEM - -## Start developing this package - -First do - -```sh -(SindbadTEM) pkg> dev ../.. ../../lib/SindbadUtils/ ../../lib/SindbadMetrics/ ../../lib/SindbadSetup/ -``` -and then - -```sh -(SindbadTEM) pkg> instantiate -``` - -now, this should work - -```sh -julia > using SindbadTEM -``` \ No newline at end of file diff --git a/lib/SindbadUtils/LICENSE b/lib/SindbadUtils/LICENSE deleted file mode 100644 index e72bfddab..000000000 --- a/lib/SindbadUtils/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/lib/SindbadUtils/Project.toml b/lib/SindbadUtils/Project.toml deleted file mode 100644 index 1fe15cfee..000000000 --- a/lib/SindbadUtils/Project.toml +++ /dev/null @@ -1,14 +0,0 @@ -name = "SindbadUtils" -uuid = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" -authors = ["SINDBAD Contributors "] -version = "0.1.0" - -[deps] -Crayons = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" -FIGlet = "3064a664-84fe-4d92-92c7-ed492f3d8fae" -Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" -StyledStrings = "f489334b-da3d-4c2e-b8f0-e476e12c162b" - -[sources] -Sindbad = {path = "../.."} \ No newline at end of file diff --git a/lib/SindbadUtils/test/Project.toml b/lib/SindbadUtils/test/Project.toml deleted file mode 100644 index df32c9ca4..000000000 --- a/lib/SindbadUtils/test/Project.toml +++ /dev/null @@ -1,4 +0,0 @@ -[deps] -Sindbad = "6686e6de-2010-4bf8-9178-b2bcc470766e" -SindbadUtils = "a2ad09c8-73f9-4387-ada0-5c5a8c58f8ab" -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" diff --git a/lib/SindbadUtils/test/README.md b/lib/SindbadUtils/test/README.md deleted file mode 100644 index 70184b1e9..000000000 --- a/lib/SindbadUtils/test/README.md +++ /dev/null @@ -1,5 +0,0 @@ -To run these test locally do - -```julia -test> dev ../../../ ../ -``` \ No newline at end of file diff --git a/lib/SindbadUtils/test/runtests.jl b/lib/SindbadUtils/test/runtests.jl deleted file mode 100644 index e76ddbb74..000000000 --- a/lib/SindbadUtils/test/runtests.jl +++ /dev/null @@ -1,4 +0,0 @@ -using Sindbad -using Test - -include("longtuple.jl") diff --git a/lib/SindbadVisuals/LICENSE b/lib/SindbadVisuals/LICENSE deleted file mode 100644 index e72bfddab..000000000 --- a/lib/SindbadVisuals/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. \ No newline at end of file diff --git a/src/Sindbad.jl b/src/Sindbad.jl index 06d1afbeb..328737be8 100644 --- a/src/Sindbad.jl +++ b/src/Sindbad.jl @@ -1,160 +1,11 @@ -""" - Sindbad - -A Julia package for the terrestrial ecosystem models within **S**trategies to **IN**tegrate **D**ata and **B**iogeochemic**A**l mo**D**els `(SINDBAD)` framework. - -The `Sindbad` package serves as the core of the SINDBAD framework, providing foundational types, utilities, and tools for building and managing SINDBAD models. - -# Purpose: -This package defines the `LandEcosystem` supertype, which serves as the base for all SINDBAD models. It also provides utilities for managing model variables, tools for model operations, and a catalog of variables used in SINDBAD workflows. - -# Dependencies: -- `Reexport`: Simplifies re-exporting functionality from other packages, ensuring a clean and modular design. -- `CodeTracking`: Enables tracking of code definitions, useful for debugging and development workflows. -- `DataStructures`: Provides advanced data structures (e.g., `OrderedDict`, `Deque`) for efficient data handling in SINDBAD models. -- `Dates`: Handles date and time operations, useful for managing temporal data in SINDBAD experiments. -- `Flatten`: Supplies tools for flattening nested data structures, simplifying the handling of hierarchical model variables. -- `InteractiveUtils`: Enables interactive exploration and debugging during development. -- `Parameters`: Provides macros for defining and managing model parameters in a concise and readable manner. -- `StaticArraysCore`: Supports efficient, fixed-size arrays (e.g., `SVector`, `MArray`) for performance-critical operations in SINDBAD models. -- `TypedTables`: Provides lightweight, type-stable tables for structured data manipulation. -- `Accessors`: Enables efficient access and modification of nested data structures, simplifying the handling of SINDBAD configurations. -- `StatsBase`: Supplies statistical functions such as `mean`, `percentile`, `cor`, and `corspearman` for computing metrics like correlation and distribution-based statistics. -- `NaNStatistics`: Extends statistical operations to handle missing values (`NaN`), ensuring robust data analysis. - - -# Included Files: -1. **`coreTypes.jl`**: - - Defines the core types used in SINDBAD, including the `LandEcosystem` supertype and other fundamental types. - -2. **`utilsCore.jl`**: - - Contains core utility functions for SINDBAD, including helper methods for array operations and code generation macros for NamedTuple packing and unpacking. - -3. **`sindbadVariableCatalog.jl`**: - - Defines a catalog of variables used in SINDBAD models, ensuring consistency and standardization across workflows. Note that every new variable would need a manual entry in the catalog so that the output files are written with correct information. - -4. **`modelTools.jl`**: - - Provides tools for extracting information from SINDBAD models, including mode code, variables, and parameters. - -5. **`Models/models.jl`**: - - Implements the core SINDBAD models, inheriting from the `LandEcosystem` supertype. Also, introduces the fallback function for compute, precompute, etc. so that they are optional in every model. - -6. **`generateCode.jl`**: - - Contains code generation utilities for SINDBAD models and workflows. - -# Notes: -- The `LandEcosystem` supertype serves as the foundation for all SINDBAD models, enabling extensibility and modularity. -- The package re-exports key functionality from other packages (e.g., `Flatten`, `StaticArraysCore`, `DataStructures`) to simplify usage and integration. -- Designed to be lightweight and modular, allowing seamless integration with other SINDBAD packages. - -# Examples: -1. **Defining a new SINDBAD model**: -```julia -struct MyModel <: LandEcosystem - # Define model-specific fields -end -``` - -2. **Using utilities from the package**: -```julia -using Sindbad -# Access utilities or models -flattened_data = flatten(nested_data) -``` - -3. **Querying the variable catalog**: -```julia -using Sindbad -catalog = getVariableCatalog() -``` -""" module Sindbad - using Reexport: @reexport - @reexport using Reexport - @reexport using Pkg - @reexport using CodeTracking - @reexport using DataStructures: DataStructures - @reexport using Dates - @reexport using Flatten: flatten, metaflatten, fieldnameflatten, parentnameflatten - @reexport using InteractiveUtils - @reexport using StaticArraysCore: StaticArray, SVector, MArray, SizedArray - @reexport using TypedTables: Table - @reexport using Accessors: @set - @reexport using StatsBase - @reexport using NaNStatistics - @reexport using Crayons - - # create a tmp_ file for tracking the creation of new approaches. This is needed because precompiler is not consistently loading the newly created approaches. This file is appended every time a new model/approach is created which forces precompile in the next use of Sindbad. - file_path = file_path = joinpath(@__DIR__, "tmp_precompile_placeholder.jl") - # Check if the file exists - if isfile(file_path) - # Include the file if it exists - include(file_path) - else - # Create a blank file if it does not exist - open(file_path, "w") do file - # Optionally, you can write some initial content - write(file, "# This is a blank file created by Sindbad module to keep track of newly added sindbad approaches/models which automatically updates this file and then forces precompilation to include the new models.\n") - end - println("Created a blank file: $file_path to track precompilation of new models and approaches") - end - - include("Types/Types.jl") - @reexport using .Types - include("utilsCore.jl") - include("sindbadVariableCatalog.jl") - include("modelTools.jl") - include("Models/Models.jl") - include("generateCode.jl") - @reexport using .Models - - # append the docstring of the LandEcosystem type to the docstring of the Sindbad module so that all the methods of the LandEcosystem type are included after the models have been described - @doc """ - LandEcosystem - - $(purpose(LandEcosystem)) - - # Methods - All subtypes of `LandEcosystem` must implement at least one of the following methods: - - `define`: Initialize arrays and variables - - `precompute`: Update variables with new realizations - - `compute`: Update model state in time - - `update`: Update pools within a single time step - - - # Example - ```julia - # Define a new model type - struct MyModel <: LandEcosystem end - - # Implement required methods - function define(params::MyModel, forcing, land, helpers) - # Initialize arrays and variables - return land - end - - function precompute(params::MyModel, forcing, land, helpers) - # Update variables with new realizations - return land - end - - function compute(params::MyModel, forcing, land, helpers) - # Update model state in time - return land - end - - function update(params::MyModel, forcing, land, helpers) - # Update pools within a single time step - return land - end - ``` - --- +using SindbadCore +using SindbadMetrics +using SindbadData +using SindbadSetup +using SindbadTEM +using SindbadOptimization +using SindbadML - # Extended help - $(methodsOf(Types.LandEcosystem)) - """ - Types.LandEcosystem - - include(joinpath(@__DIR__, "Types/docStringForTypes.jl")) -end +end \ No newline at end of file diff --git a/test/README.md b/test/README.md deleted file mode 100644 index 32a7a8693..000000000 --- a/test/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# What are we testing for here? - -## For Models - -1. Proper `subtyping` of model structs. -2. Allocations. It should be **ZERO** for core models. -3. The expected result for packed variables (your variables at the @pack_nt step). Is the math correct? -- More? suggestions welcome. - -Note that this done for `one time step`. \ No newline at end of file