exoplasim


Nameexoplasim JSON
Version 3.4.1 PyPI version JSON
download
home_pageNone
SummaryExoplanet GCM
upload_time2024-08-05 23:17:37
maintainerNone
docs_urlNone
authorMaureen J. Cohen, Edilbert Kirk, Harmut Borth, Frank Lunkeit
requires_python>=3.8
licenseNone
keywords gcm astronomy climate exoplanet science simulation space weather
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. -*- coding:utf-8 -*-

===========================
ExoPlaSim Python API README
===========================

Created by Adiv Paradise

Copyright 2020, Distributed under the General Public License

This API was written with Python 3 in mind, but should work with
Python 2 and outdated versions of NumPy. 

Read the full documentation at http://exoplasim.readthedocs.io.

Requirements
------------
    
*   numpy
*   scipy
*   matplotlib (only needed for additional utilities)
*   GNU C (gcc/g++) and Fortran (gfortran) compilers (for Python utilities)
*   (optionally) Other compilers whose use you prefer for the model itself
*   (optionally) MPI libraries for those compilers
*   netCDF4 (optional)
*   h5py (optional)
    
Compatibility
*************

* Linux (tested on Ubuntu 18.04, CentOS 6.10): **Yes**
* Google Colaboratory: Yes (note that OpenMPI support on Colaboratory is limited due to automatic root privileges; look up how to run OpenMPI executables with root permissions and note that this is not recommended)
* Windows 10: Yes, via Windows Subsystem for Linux
* Mac OS X: Yes, requires Xcode and developer tools, and `OpenMPI support requires that Fortran-compatible libraries be built. <https://www.open-mpi.org/faq/?category=osx#not-using-osx-bundled-ompi>`_ Tested on Mac OS X Catalina and Big Sur (with MacPorts, GCC10, OpenMPI, and Anaconda3), Apple M1 compatibility has not been tested.

**New in 3.0:**
---------------

* ExoPlaSim no longer depends on X11 libraries for installation and compilation!
* Revamped `postprocessor <postprocessor.html>`_ no longer depends on NetCDF-C libraries, and supports additional output formats (including netCDF, HDF5, NumPy archives, and archives of CSV files).
* GCC and gfortran support through GCC 10.
* Improved cross-platform compatibility
* Numerous bugfixes

Installation
------------

::

    pip install exoplasim
    
OR::

    python setup.py install
    
The first time you import the module and try to create a model
after either installing or updating, ExoPlaSim will run a 
configuration script.

Multiple output formats are supported by the built-in `pyburn`
postprocessor. If you wish to use HDF5 or NetCDF output formats, you
will need the netCDF4-python and h5py libraries, respectively. You
can ensure these are included at install-time by specifying them:

::
    pip install exoplasim[netCDF4]
    
OR::
    pip install exoplasim[HDF5]
    
OR::
    pip install exoplasim[netCDF4,HDF5]

You may also configure and compile the model manually if you wish
to not use the Python API, by entering the exoplasim/ directory
and running first configure.sh, then compile.sh (compilation flags
are shown by running ``./compile.sh -h``). 

PlaSim Documentation
--------------------

Original PlaSim documentation is available in the exoplasim/docs/
folder.

Usage
-----

To use the ExoPlaSim Python API, you must import the module, create
a Model or one of its subclasses, call its configure method and/or
modify method, and then run it. 

An IPython notebook is included with ExoPlaSim; which demonstrates
basic usage. It can be found in the ExoPlaSim installation directory,
or `downloaded directly here. <https://raw.githubusercontent.com/alphaparrot/ExoPlaSim/master/exoplasim/exoplasim_tutorial.ipynb>`_

Basic example:::

    import exoplasim as exo
    mymodel = exo.Model(workdir="mymodel_testrun",modelname="mymodel",resolution="T21",layers=10,ncpus=8)
    mymodel.configure()
    mymodel.exportcfg()
    mymodel.run(years=100,crashifbroken=True)
    mymodel.finalize("mymodel_output")
    
In this example, we initialize a model that will run in the directory
"mymodel_testrun", and has the name "mymodel", which will be used to
label output and error logs. The model has T21 resolution, or 32x64,
10 layers, and will run on 8 CPUs. By default, the compiler will use
8-byte precision. 4-byte may run slightly faster, but possibly at the
cost of reduced stability. If there are machine-specific optimization
flags you would like to use when compiling, you may specify them as a
string to the optimization argument, e.g. ``optimization='mavx'``. ExoPlaSim
will check to see if an appropriate executable has already been created,
and if not (or if flags indicating special compiler behavior such as 
debug=True or an optimization flag are set) it will compile one. We then
configure the model with all the default parameter choices, which means
we will get a model of Earth. We then export the model configurations
to a ``.cfg`` file (named automatically after the model), which will allow
the model configuration to be recreated exactly by other users. We 
run the model for 100 years, with error-handling enabled. Finally, we 
tell the model to clean up after itself. It will take the most recent 
output files and rename them after the model name we chose, and delete 
all the intermediate output and configuration files. 

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "exoplasim",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Adiv Paradise <paradise.astro@gmail.com>",
    "keywords": "GCM, astronomy, climate, exoplanet, science, simulation, space, weather",
    "author": "Maureen J. Cohen, Edilbert Kirk, Harmut Borth, Frank Lunkeit",
    "author_email": "Adiv Paradise <paradise.astro@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/35/69/81a92c25a7ef46883167a048934ddd03938628d6af8614a51e6f70a01fbe/exoplasim-3.4.1.tar.gz",
    "platform": null,
    "description": ".. -*- coding:utf-8 -*-\n\n===========================\nExoPlaSim Python API README\n===========================\n\nCreated by Adiv Paradise\n\nCopyright 2020, Distributed under the General Public License\n\nThis API was written with Python 3 in mind, but should work with\nPython 2 and outdated versions of NumPy. \n\nRead the full documentation at http://exoplasim.readthedocs.io.\n\nRequirements\n------------\n    \n*   numpy\n*   scipy\n*   matplotlib (only needed for additional utilities)\n*   GNU C (gcc/g++) and Fortran (gfortran) compilers (for Python utilities)\n*   (optionally) Other compilers whose use you prefer for the model itself\n*   (optionally) MPI libraries for those compilers\n*   netCDF4 (optional)\n*   h5py (optional)\n    \nCompatibility\n*************\n\n* Linux (tested on Ubuntu 18.04, CentOS 6.10): **Yes**\n* Google Colaboratory: Yes (note that OpenMPI support on Colaboratory is limited due to automatic root privileges; look up how to run OpenMPI executables with root permissions and note that this is not recommended)\n* Windows 10: Yes, via Windows Subsystem for Linux\n* Mac OS X: Yes, requires Xcode and developer tools, and `OpenMPI support requires that Fortran-compatible libraries be built. <https://www.open-mpi.org/faq/?category=osx#not-using-osx-bundled-ompi>`_ Tested on Mac OS X Catalina and Big Sur (with MacPorts, GCC10, OpenMPI, and Anaconda3), Apple M1 compatibility has not been tested.\n\n**New in 3.0:**\n---------------\n\n* ExoPlaSim no longer depends on X11 libraries for installation and compilation!\n* Revamped `postprocessor <postprocessor.html>`_ no longer depends on NetCDF-C libraries, and supports additional output formats (including netCDF, HDF5, NumPy archives, and archives of CSV files).\n* GCC and gfortran support through GCC 10.\n* Improved cross-platform compatibility\n* Numerous bugfixes\n\nInstallation\n------------\n\n::\n\n    pip install exoplasim\n    \nOR::\n\n    python setup.py install\n    \nThe first time you import the module and try to create a model\nafter either installing or updating, ExoPlaSim will run a \nconfiguration script.\n\nMultiple output formats are supported by the built-in `pyburn`\npostprocessor. If you wish to use HDF5 or NetCDF output formats, you\nwill need the netCDF4-python and h5py libraries, respectively. You\ncan ensure these are included at install-time by specifying them:\n\n::\n    pip install exoplasim[netCDF4]\n    \nOR::\n    pip install exoplasim[HDF5]\n    \nOR::\n    pip install exoplasim[netCDF4,HDF5]\n\nYou may also configure and compile the model manually if you wish\nto not use the Python API, by entering the exoplasim/ directory\nand running first configure.sh, then compile.sh (compilation flags\nare shown by running ``./compile.sh -h``). \n\nPlaSim Documentation\n--------------------\n\nOriginal PlaSim documentation is available in the exoplasim/docs/\nfolder.\n\nUsage\n-----\n\nTo use the ExoPlaSim Python API, you must import the module, create\na Model or one of its subclasses, call its configure method and/or\nmodify method, and then run it. \n\nAn IPython notebook is included with ExoPlaSim; which demonstrates\nbasic usage. It can be found in the ExoPlaSim installation directory,\nor `downloaded directly here. <https://raw.githubusercontent.com/alphaparrot/ExoPlaSim/master/exoplasim/exoplasim_tutorial.ipynb>`_\n\nBasic example:::\n\n    import exoplasim as exo\n    mymodel = exo.Model(workdir=\"mymodel_testrun\",modelname=\"mymodel\",resolution=\"T21\",layers=10,ncpus=8)\n    mymodel.configure()\n    mymodel.exportcfg()\n    mymodel.run(years=100,crashifbroken=True)\n    mymodel.finalize(\"mymodel_output\")\n    \nIn this example, we initialize a model that will run in the directory\n\"mymodel_testrun\", and has the name \"mymodel\", which will be used to\nlabel output and error logs. The model has T21 resolution, or 32x64,\n10 layers, and will run on 8 CPUs. By default, the compiler will use\n8-byte precision. 4-byte may run slightly faster, but possibly at the\ncost of reduced stability. If there are machine-specific optimization\nflags you would like to use when compiling, you may specify them as a\nstring to the optimization argument, e.g. ``optimization='mavx'``. ExoPlaSim\nwill check to see if an appropriate executable has already been created,\nand if not (or if flags indicating special compiler behavior such as \ndebug=True or an optimization flag are set) it will compile one. We then\nconfigure the model with all the default parameter choices, which means\nwe will get a model of Earth. We then export the model configurations\nto a ``.cfg`` file (named automatically after the model), which will allow\nthe model configuration to be recreated exactly by other users. We \nrun the model for 100 years, with error-handling enabled. Finally, we \ntell the model to clean up after itself. It will take the most recent \noutput files and rename them after the model name we chose, and delete \nall the intermediate output and configuration files. \n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Exoplanet GCM",
    "version": "3.4.1",
    "project_urls": {
        "Documentation": "https://exoplasim.readthedocs.io",
        "Issues": "https://github.com/alphaparrot/ExoPlaSim/issues",
        "Repository": "https://github.com/alphaparrot/ExoPlaSim.git"
    },
    "split_keywords": [
        "gcm",
        " astronomy",
        " climate",
        " exoplanet",
        " science",
        " simulation",
        " space",
        " weather"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f8863aefbcacbdf75655445c75591b24789eed6528ea27d932482568b0c5331f",
                "md5": "ab70bf15fcd0cd44fccba29fcec18de4",
                "sha256": "64859ccef799f43417dc142cda556156389d664380b92ad12789c95f69b86850"
            },
            "downloads": -1,
            "filename": "exoplasim-3.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ab70bf15fcd0cd44fccba29fcec18de4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 20524832,
            "upload_time": "2024-08-05T23:17:33",
            "upload_time_iso_8601": "2024-08-05T23:17:33.003411Z",
            "url": "https://files.pythonhosted.org/packages/f8/86/3aefbcacbdf75655445c75591b24789eed6528ea27d932482568b0c5331f/exoplasim-3.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "356981a92c25a7ef46883167a048934ddd03938628d6af8614a51e6f70a01fbe",
                "md5": "9f623777be2a6491412f9d4eaed1f8c4",
                "sha256": "5fd5c3361f4888e932f01db1e1ee5308b2d3cce75e9eb08050874d66f4093498"
            },
            "downloads": -1,
            "filename": "exoplasim-3.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "9f623777be2a6491412f9d4eaed1f8c4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 20393624,
            "upload_time": "2024-08-05T23:17:37",
            "upload_time_iso_8601": "2024-08-05T23:17:37.241007Z",
            "url": "https://files.pythonhosted.org/packages/35/69/81a92c25a7ef46883167a048934ddd03938628d6af8614a51e6f70a01fbe/exoplasim-3.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-05 23:17:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "alphaparrot",
    "github_project": "ExoPlaSim",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "exoplasim"
}
        
Elapsed time: 4.04090s