From 205c967522bbfa83e049b884ad2e3e9469a0b733 Mon Sep 17 00:00:00 2001 From: Theo Steininger <theo.steininger@ultimanet.de> Date: Tue, 21 Feb 2017 02:50:27 +0100 Subject: [PATCH] Added pymultinest importer. Adapted carrier_mapper.py to multinest prior cube. --- imagine/__init__.py | 2 ++ imagine/carrier_mapper.py | 10 +++++++++- .../magnetic_field/magnetic_field_factory.py | 13 ++++++++----- imagine/pymultinest/__init__.py | 3 +++ imagine/pymultinest/mpi4py_shadow.py | 13 +++++++++++++ imagine/pymultinest/pymultinest.py | 12 ++++++++++++ 6 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 imagine/pymultinest/__init__.py create mode 100644 imagine/pymultinest/mpi4py_shadow.py create mode 100644 imagine/pymultinest/pymultinest.py diff --git a/imagine/__init__.py b/imagine/__init__.py index 23f5d89..8cf04f1 100644 --- a/imagine/__init__.py +++ b/imagine/__init__.py @@ -6,6 +6,8 @@ from magnetic_fields import * from observers import * from priors import * +from pymultinest import pymultinest + from pipeline import Pipeline import nifty diff --git a/imagine/carrier_mapper.py b/imagine/carrier_mapper.py index 55e632a..9f97563 100644 --- a/imagine/carrier_mapper.py +++ b/imagine/carrier_mapper.py @@ -3,7 +3,7 @@ import numpy as np -def carrier_mapper(x, a=-np.inf, m=0, b=np.inf): +def infinity_mapper(x, a=-np.inf, m=0, b=np.inf): """ Maps x from [-inf, inf] into the interval [a, b], where x=0 -> m """ @@ -31,3 +31,11 @@ def carrier_mapper(x, a=-np.inf, m=0, b=np.inf): # strech y to the interval [a,b] y = y*(b-a) + a return y + + +def unity_mapper(x, a=0, b=1): + """ + Maps x from [0, 1] into the interval [a, b] + """ + # rescale and shift + return x * (b-a) + a diff --git a/imagine/magnetic_fields/magnetic_field/magnetic_field_factory.py b/imagine/magnetic_fields/magnetic_field/magnetic_field_factory.py index cdedf71..ebcb145 100644 --- a/imagine/magnetic_fields/magnetic_field/magnetic_field_factory.py +++ b/imagine/magnetic_fields/magnetic_field/magnetic_field_factory.py @@ -4,7 +4,7 @@ import numpy as np from keepers import Loggable -from imagine.carrier_mapper import carrier_mapper +from imagine.carrier_mapper import unity_mapper from nifty import FieldArray, RGSpace @@ -96,10 +96,13 @@ class MagneticFieldFactory(Loggable, object): for variable_name in variables: if variable_name in self.variable_to_parameter_mappings: mapping = self.variable_to_parameter_mappings[variable_name] - mapped_variable = carrier_mapper(variables[variable_name], - a=mapping[0], - m=mapping[1], - b=mapping[2]) + mapped_variable = unity_mapper(variables[variable_name], + a=mapping[0], + b=mapping[2]) +# mapped_variable = carrier_mapper(variables[variable_name], +# a=mapping[0], +# m=mapping[1], +# b=mapping[2]) else: mapped_variable = np.float(variables[variable_name]) parameter_dict[variable_name] = mapped_variable diff --git a/imagine/pymultinest/__init__.py b/imagine/pymultinest/__init__.py new file mode 100644 index 0000000..199a382 --- /dev/null +++ b/imagine/pymultinest/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from pymultinest import pymultinest diff --git a/imagine/pymultinest/mpi4py_shadow.py b/imagine/pymultinest/mpi4py_shadow.py new file mode 100644 index 0000000..25fe49c --- /dev/null +++ b/imagine/pymultinest/mpi4py_shadow.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- + + +class _MPI(object): + def __init__(self): + self.COMM_WORLD = _COMM_WORLD() + + +class _COMM_WORLD(object): + def Get_size(self): + return 1 + +MPI = _MPI() diff --git a/imagine/pymultinest/pymultinest.py b/imagine/pymultinest/pymultinest.py new file mode 100644 index 0000000..a7e7f85 --- /dev/null +++ b/imagine/pymultinest/pymultinest.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +import sys +import mpi4py +import mpi4py_shadow + +mpi4py_backup = sys.modules['mpi4py'] +sys.modules['mpi4py'] = mpi4py_shadow + +import pymultinest + +sys.modules['mpi4py'] = mpi4py_backup -- GitLab