BORGForwardModel

class aquila_borg.forward.BORGForwardModel

Base class for all forward models.

All forward models derive from this class. However python implemented forward models must use BaseForwardModel.

Members

accumulateAdjoint(self: aquila_borg._borg.forward.BORGForwardModel, do_accumulate: bool) → None

Request the model to accumulate adjoint vectors instead of resetting at each call.

This changes the default behavior of adjointModel_v2. Use with care.

Parameters

do_accumulate (bool) – If true, request the change of behavior.

adjointModel_v2(self: aquila_borg._borg.forward.BORGForwardModel, adjoint_gradient: object) → None

Pushes the adjoint gradient from a deeper part of the computation.

This function allows to push the adjoint gradient vector for a deeper part of the computation (like the likelihood) to the forward model. It will not return the result which has to be query with getAdjointModel().

Parameters
  • adjoint_gradient (numpy.array) – A 3d numpy array either real or complex. If

  • it must use the RFFT half-complex representation (complex) –

Returns

None

clearAdjointGradient(self: aquila_borg._borg.forward.BORGForwardModel) → None

Clear accumulated information to compute the adjoint gradient vector.

This is automaticalled by getAdjointModelOutput.

forwardModel(self: aquila_borg._borg.forward.BORGForwardModel, arg0: numpy.ndarray[numpy.complex128], arg1: numpy.ndarray[numpy.float64]) → None
forwardModel_v2(self: aquila_borg._borg.forward.BORGForwardModel, arg0: numpy.ndarray) → None

Run the first part of the forward model (v2 API).

Parameters

input_array (numpy.array) – A 3d numpy array either real or complex. If complex it must use the RFFT half-complex representation

Returns

None

getAdjointModel(self: aquila_borg._borg.forward.BORGForwardModel, arg0: numpy.ndarray) → None
getBoxModel(self: aquila_borg._borg.forward.BORGForwardModel) → aquila_borg._borg.forward.BoxModel

Return the box on which is defined the input of the model is defined.

getCommunicator(self: aquila_borg._borg.forward.BORGForwardModel) → object

Build and return an MPI4PY communicator object that is linked to the internal MPI communicator of that object.

Returns

mpi4py.MPI.Comm

getDensityFinal(self: aquila_borg._borg.forward.BORGForwardModel, arg0: numpy.ndarray) → None

Obtain the density field produced by the forward model (part 2 of the evaluation, v2 API).

getMPISlice(self: aquila_borg._borg.forward.BORGForwardModel) → tuple

Returns a tuple of integer indicating the way the slab is distributed among the node.

Returns

(startN0, localN0, N1, N2)

Return type

tuple of int

getModelParam(self: aquila_borg._borg.forward.BORGForwardModel, model: str, keyname: str) → object

This queries the current state of the parameters ‘keyname’ in model ‘model’.

Parameters

model (str) – sub model name keyname (str): key of the parameter to query

Returns

the value of the parameter

Return type

object

getOutputBoxModel(self: aquila_borg._borg.forward.BORGForwardModel) → aquila_borg._borg.forward.BoxModel

Return the box on which is defined the output of the model is defined.

Returns

the box model representing the shape and size of the output of that forward model.

Return type

BoxModel

getOutputMPISlice(self: aquila_borg._borg.forward.BORGForwardModel) → tuple

Return a tuple indicating what is the expected output MPI slicing (startN0,localN0,N1,N2) (Warning! unstable API)

getPreferredInput(self: aquila_borg._borg.forward.BORGForwardModel) → aquila_borg._borg.forward.PreferredIO

Returns the preferred output format (i.e. the one that incurs less transforms) for that model.

Returns

the preferred format

Return type

PreferredIO

getPreferredOutput(self: aquila_borg._borg.forward.BORGForwardModel) → aquila_borg._borg.forward.PreferredIO

Returns the preferred output format (i.e. the one that incurs less transforms) for that model.

Returns

the preferred format

Return type

PreferredIO

holdParticles(self: aquila_borg._borg.forward.BORGForwardModel) → None
setAdjointRequired(self: aquila_borg._borg.forward.BORGForwardModel, arg0: bool) → None

Indicate whether the caller require the adjoint gradient to be computed later.

Parameters

flag (bool) – if True, tape is recorded to compute adjoint

setCosmoParams(self: aquila_borg._borg.forward.BORGForwardModel, cosmo_params: aquila_borg._borg.cosmo.CosmologicalParameters) → None

Setup the cosmological parameters that this model requires.

Parameters

cosmo_params (aquila_borg.cosmo.CosmologicalParameters) – Cosmological parameters

setModelParams(self: aquila_borg._borg.forward.BORGForwardModel, params: dict) → None

Allow changing model parameters for different model indexed by the dictionnary key, each item is another dictionnary with key/value pairs.

setName(self: aquila_borg._borg.forward.BORGForwardModel, name: str) → None

Give a to localize more easily a model instance.

Parameters

name (str) – string name of the instance

Methods

__init__

Initialize self.

accumulateAdjoint(self, do_accumulate)

Request the model to accumulate adjoint vectors instead of resetting at each call.

adjointModel_v2(self, adjoint_gradient)

Pushes the adjoint gradient from a deeper part of the computation.

clearAdjointGradient(self)

Clear accumulated information to compute the adjoint gradient vector.

forwardModel(self, arg0, arg1)

forwardModel_v2(self, arg0)

Run the first part of the forward model (v2 API).

getAdjointModel(self, arg0)

getBoxModel(self)

Return the box on which is defined the input of the model is defined.

getCommunicator(self)

Build and return an MPI4PY communicator object that is linked to the internal MPI communicator of that object.

getDensityFinal(self, arg0)

Obtain the density field produced by the forward model (part 2 of the evaluation, v2 API).

getMPISlice(self)

Returns a tuple of integer indicating the way the slab is distributed among the node.

getModelParam(self, model, keyname)

This queries the current state of the parameters ‘keyname’ in model ‘model’.

getOutputBoxModel(self)

Return the box on which is defined the output of the model is defined.

getOutputMPISlice(self)

Return a tuple indicating what is the expected output MPI slicing (startN0,localN0,N1,N2) (Warning! unstable API)

getPreferredInput(self)

Returns the preferred output format (i.e.

getPreferredOutput(self)

Returns the preferred output format (i.e.

holdParticles(self)

setAdjointRequired(self, arg0)

Indicate whether the caller require the adjoint gradient to be computed later.

setCosmoParams(self, cosmo_params)

Setup the cosmological parameters that this model requires.

setModelParams(self, params)

Allow changing model parameters for different model indexed by the dictionnary key, each item is another dictionnary with key/value pairs.

setName(self, name)

Give a to localize more easily a model instance.