Skip to content

Commit 0e91d49

Browse files
authored
solver and gaussian process improvements release (2.4.0 release) (#602)
* add support for differential evolution optimizer solver * add support for differential corrections optimizer solver * optimizers: ability to continue runs from previous solutions (for most optimizers) * improvements to geometry and ebai estimators to use ligeor as a new built-in dependency * gaussian processes now use celerite2 or scikit-learn instead of celerite * emcee sampler: additional plotting styles to check for convergence, checks to ensure starting sample is physical, and added ability to continue a previous run from any arbitrary iteration in a previous run * new support for running jobs on external servers via crimpl * clarified distinction between chi2 and mle
1 parent 20da931 commit 0e91d49

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+177059
-1687
lines changed

.github/workflows/ci-nosetests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ jobs:
9494
python -m pip install "numpy${{ matrix.numpy-version }}" --no-cache-dir --ignore-installed
9595
python -m pip install "scipy${{ matrix.scipy-version }}"
9696
python -m pip install "astropy${{ matrix.astropy-version }}"
97-
python -m pip install nose rebound requests pytest asdf matplotlib sympy requests
97+
python -m pip install nose rebound requests pytest asdf matplotlib sympy requests tqdm corner
9898
9999
- name: Test numpy, scipy, astropy install/versions
100100
run: |

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
/phoebe/atmospheres/tables/ck2004
55
/phoebe/atmospheres/tables/ck2004i
66
/phoebe/atmospheres/tables/phoenix
7+
/phoebe/atmospheres/tables/tmap
8+
/phoebe/atmospheres/tables/tlusty
9+
/phoebe/atmospheres/tables/phoenix.orig
710
MANIFEST
811
*_tmp*
912
*after.phoebe

README.md

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
PHOEBE 2.3
1+
PHOEBE 2.4
22
------------------------
33

44
<p align="center"><a href="http://phoebe-project.org"><img src="./images/logo_blue.svg" alt="PHOEBE logo" width="160px" align="center"/></a></p>
@@ -18,6 +18,7 @@ PHOEBE 2.3
1818
<a href="https://ui.adsabs.harvard.edu/abs/2018ApJS..237...26H"><img src="https://img.shields.io/badge/ApJS-Horvat+2018-lightgrey.svg"/></a>
1919
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J"><img src="https://img.shields.io/badge/ApJS-Jones+2020-lightgrey.svg"/></a>
2020
<a href="https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C/"><img src="https://img.shields.io/badge/ApJS-Conroy+2020-lightgrey.svg"/></a>
21+
<img src="https://img.shields.io/badge/Kochoska+2022-lightgrey.svg"/>
2122
</p>
2223

2324
<p align="center">
@@ -32,7 +33,7 @@ PHOEBE stands for PHysics Of Eclipsing BinariEs. PHOEBE is pronounced [fee-bee](
3233

3334
PHOEBE 2 is a rewrite of the original PHOEBE code. For most up-to-date information please refer to the PHOEBE project webpage: [http://phoebe-project.org](http://phoebe-project.org)
3435

35-
PHOEBE 2.0 is described by the release paper published in the Astrophysical Journal Supplement, [Prša et al. (2016, ApJS 227, 29)](https://ui.adsabs.harvard.edu/#abs/2016ApJS..227...29P). The addition of support for misaligned stars in version 2.1 is described in [Horvat et al. (2018, ApJS 237, 26)](https://ui.adsabs.harvard.edu/#abs/2018ApJS..237...26H). Interstellar extinction and support for Python 3 was added in version 2.2 and described in [Jones et al. (2020, ApJS 247, 63)](https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J). Inclusion of a general framework for solving the inverse problem as well as support for the [web and desktop clients](http://phoebe-project.org/clients) was introduced in version 2.3 as described in [Conroy et al. (2020, ApJS 250, 34)](https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C), which also removes support for Python 2.
36+
PHOEBE 2.0 is described by the release paper published in the Astrophysical Journal Supplement, [Prša et al. (2016, ApJS 227, 29)](https://ui.adsabs.harvard.edu/#abs/2016ApJS..227...29P). The addition of support for misaligned stars in version 2.1 is described in [Horvat et al. (2018, ApJS 237, 26)](https://ui.adsabs.harvard.edu/#abs/2018ApJS..237...26H). Interstellar extinction and support for Python 3 was added in version 2.2 and described in [Jones et al. (2020, ApJS 247, 63)](https://ui.adsabs.harvard.edu/abs/2020ApJS..247...63J). Inclusion of a general framework for solving the inverse problem as well as support for the [web and desktop clients](http://phoebe-project.org/clients) was introduced in version 2.3 as described in [Conroy et al. (2020, ApJS 250, 34)](https://ui.adsabs.harvard.edu/abs/2020ApJS..250...34C), which also removes support for Python 2. PHOEBE 2.4 improves on the geometry and ebai estimators, updates gaussian processes to use either scikit-learn or celerite2, and adds support for submitting compute or solver runs on external servers. These updates and fitting "best practices" will be discussed in Kochoska et al., in prep.
3637

3738
PHOEBE 2 is released under the [GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.en.html).
3839

@@ -64,7 +65,7 @@ To install PHOEBE 2 from the source site-wide, go to the `phoebe2/` directory an
6465
python3 setup.py build
6566
sudo python3 setup.py install
6667

67-
Note that as of the 2.3 release, PHOEBE requires Python 3.6 or later. For further details on pre-requisites consult the [PHOEBE project webpage](http://phoebe-project.org/install/2.3).
68+
Note that as of the 2.3 release, PHOEBE requires Python 3.6 or later. For further details on pre-requisites consult the [PHOEBE project webpage](http://phoebe-project.org/install/2.4).
6869

6970

7071
GETTING STARTED
@@ -78,12 +79,23 @@ PHOEBE 2 has a fairly steep learning curve. To start PHOEBE from python, issue:
7879

7980
As of the 2.3 release, PHOEBE also includes a desktop and web client user-interface which is installed independently of the python package here. See the [phoebe2-ui repository](https://github.com/phoebe-project/phoebe2-ui) and [phoebe-project.org/clients](http://phoebe-project.org/clients) for more details.
8081

81-
To understand how to use PHOEBE, please consult the [tutorials, scripts and manuals](http://phoebe-project.org/docs/2.3/) hosted on the PHOEBE webpage.
82+
To understand how to use PHOEBE, please consult the [tutorials, scripts and manuals](http://phoebe-project.org/docs/2.4/) hosted on the PHOEBE webpage.
8283

8384

8485
CHANGELOG
8586
----------
8687

88+
### 2.4.0 - solver and gaussian process improvements release
89+
90+
* add support for differential evolution optimizer solver
91+
* add support for differential corrections optimizer solver
92+
* optimizers: ability to continue runs from previous solutions (for most optimizers)
93+
* improvements to geometry and ebai estimators to use ligeor as a new built-in dependency
94+
* gaussian processes now use celerite2 or scikit-learn instead of celerite
95+
* emcee sampler: additional plotting styles to check for convergence, checks to ensure starting sample is physical, and added ability to continue a previous run from any arbitrary iteration in a previous run
96+
* new support for running jobs on external servers via crimpl
97+
* clarified distinction between chi2 and mle
98+
8799
### 2.3.63 - constraint feature bugfix
88100

89101
* fix bug where creating a custom constraint for parameters within features was not correctly identifying the constrained parameter and was raising an error when attempting to set the value of the constraining parameter.

client-server/phoebe-server

+4-2
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ from distutils.version import StrictVersion
101101

102102
from phoebe.parameters.unit_choices import unit_choices as _unit_choices
103103

104-
phoebe.devel_on() # currently needed for client mode, remove for actual release
105104
phoebe.interactive_off()
106105
phoebe.parameters._is_server = True
107106

@@ -254,7 +253,8 @@ _available_kinds = {'component': phoebe.list_available_components(),
254253
'dataset': phoebe.list_available_datasets(),
255254
'figure': phoebe.list_available_figures(),
256255
'compute': phoebe.list_available_computes(),
257-
'solver': phoebe.list_available_solvers()}
256+
'solver': phoebe.list_available_solvers(),
257+
'server': phoebe.list_available_servers()}
258258

259259
# logger = phoebe.logger('INFO')
260260
_dir_tmpimages = os.path.join(tempfile.gettempdir(), 'phoebe-server-tmpimages')
@@ -540,6 +540,8 @@ def info():
540540
if client_version is not None:
541541
if StrictVersion(client_version) < StrictVersion('1.0.0'):
542542
client_warning = 'client still in development'
543+
elif StrictVersion(client_version) < StrictVersion('1.1.0'):
544+
client_warning = 'client does not support adding or editing servers'
543545

544546

545547
info = app._includeinfo

0 commit comments

Comments
 (0)