Reference for simobject Classes

class simobject.DataUpdater(keys, *args, string=None, **kwargs)[source]

Bases: simobject.updater.Updater

Special Updater that keeps track of the changing quantities by appending them to a numpy array.

Methods

print

update

class simobject.HeartbeatObject[source]

Bases: object

Object with systole, update, and diastole

systoler, updater, and diastoler are properties that can be set with a function or an Updater object.

systole, update, diastole are calling the respective updater.

Attributes
diastoler
systoler
updater

Methods

diastole()

call the Diastole updater

systole()

call the Systole updater

update()

call the Updater to do the update

diastole()[source]

call the Diastole updater

systole()[source]

call the Systole updater

update()[source]

call the Updater to do the update

class simobject.Quantity(input_array, info=None, owner=None, updater=None, systoler=None, diastoler=None, constant=None, copy=False, **kwargs)[source]

Bases: numpy.ndarray, simobject.heartbeat_object.HeartbeatObject

numpy.ndarray that also stores its owner and a info string.

The input_array and extra keywords are passed to np.asarray.

WARNING: it has the same tricky boolean behavior as numpy arrays:

>>> s = Quantity(True)
>>> if s is True:
>>>     print('True')
>>> else:
>>>     print('False')
'False'

But the other ways work:

>>> if s == True: print('True')
True
>>> if s: print('True')
True
Parameters
  • input_array (scalar | list | array) – anything accepted by np.asarray

  • info (str) – will be setting self.info and used in the string representation

  • owner (obj) – any object to refer to as owner that could be accessed within methods, e.g. a parent simulation object whose values might be needed inside update.

  • updater (obj) – Updater object

  • systoler (obj) – Updater object that will be used in the systole (before all updates)

  • diastoler (obj) – Updater object that will be used in the diastole (after all updates)

  • constant (bool) – if constant, then the value cannot be changed

Attributes
T

The transposed array.

base

Base object if memory is from some other object.

constant
ctypes

An object to simplify the interaction of the array with the ctypes module.

data

Python buffer object pointing to the start of the array’s data.

diastoler
dtype

Data-type of the array’s elements.

flags

Information about the memory layout of the array.

flat

A 1-D iterator over the array.

imag

The imaginary part of the array.

itemsize

Length of one array element in bytes.

nbytes

Total bytes consumed by the elements of the array.

ndim

Number of array dimensions.

real

The real part of the array.

shape

Tuple of array dimensions.

size

Number of elements in the array.

strides

Tuple of bytes to step in each dimension when traversing an array.

systoler
updater

Methods

all([axis, out, keepdims])

Returns True if all elements evaluate to True.

any([axis, out, keepdims])

Returns True if any of the elements of a evaluate to True.

argmax([axis, out])

Return indices of the maximum values along the given axis.

argmin([axis, out])

Return indices of the minimum values along the given axis of a.

argpartition(kth[, axis, kind, order])

Returns the indices that would partition this array.

argsort([axis, kind, order])

Returns the indices that would sort this array.

astype(dtype[, order, casting, subok, copy])

Copy of the array, cast to a specified type.

byteswap([inplace])

Swap the bytes of the array elements

choose(choices[, out, mode])

Use an index array to construct a new array from a set of choices.

clip([min, max, out])

Return an array whose values are limited to [min, max].

compress(condition[, axis, out])

Return selected slices of this array along given axis.

conj()

Complex-conjugate all elements.

conjugate()

Return the complex conjugate, element-wise.

copy([order])

Return a copy of the array.

cumprod([axis, dtype, out])

Return the cumulative product of the elements along the given axis.

cumsum([axis, dtype, out])

Return the cumulative sum of the elements along the given axis.

diagonal([offset, axis1, axis2])

Return specified diagonals.

diastole()

call the Diastole updater

dot(b[, out])

Dot product of two arrays.

dump(file)

Dump a pickle of the array to the specified file.

dumps()

Returns the pickle of the array as a string.

fill(value)

Fill the array with a scalar value.

flatten([order])

Return a copy of the array collapsed into one dimension.

getfield(dtype[, offset])

Returns a field of the given array as a certain type.

item(*args)

Copy an element of an array to a standard Python scalar and return it.

itemset(*args)

Insert scalar into an array (scalar is cast to array’s dtype, if possible)

max([axis, out, keepdims, initial, where])

Return the maximum along a given axis.

mean([axis, dtype, out, keepdims])

Returns the average of the array elements along given axis.

min([axis, out, keepdims, initial, where])

Return the minimum along a given axis.

newbyteorder([new_order])

Return the array with the same data viewed with a different byte order.

nonzero()

Return the indices of the elements that are non-zero.

partition(kth[, axis, kind, order])

Rearranges the elements in the array in such a way that the value of the element in kth position is in the position it would be in a sorted array.

prod([axis, dtype, out, keepdims, initial, …])

Return the product of the array elements over the given axis

ptp([axis, out, keepdims])

Peak to peak (maximum - minimum) value along a given axis.

put(indices, values[, mode])

Set a.flat[n] = values[n] for all n in indices.

ravel([order])

Return a flattened array.

repeat(repeats[, axis])

Repeat elements of an array.

reshape(shape[, order])

Returns an array containing the same data with a new shape.

resize(new_shape[, refcheck])

Change shape and size of array in-place.

round([decimals, out])

Return a with each element rounded to the given number of decimals.

searchsorted(v[, side, sorter])

Find indices where elements of v should be inserted in a to maintain order.

setfield(val, dtype[, offset])

Put a value into a specified place in a field defined by a data-type.

setflags([write, align, uic])

Set array flags WRITEABLE, ALIGNED, (WRITEBACKIFCOPY and UPDATEIFCOPY), respectively.

setvalue(value)

sets this array to the new value, but keeps its info and owner

sort([axis, kind, order])

Sort an array in-place.

squeeze([axis])

Remove single-dimensional entries from the shape of a.

std([axis, dtype, out, ddof, keepdims])

Returns the standard deviation of the array elements along given axis.

sum([axis, dtype, out, keepdims, initial, where])

Return the sum of the array elements over the given axis.

swapaxes(axis1, axis2)

Return a view of the array with axis1 and axis2 interchanged.

systole()

call the Systole updater

take(indices[, axis, out, mode])

Return an array formed from the elements of a at the given indices.

tobytes([order])

Construct Python bytes containing the raw data bytes in the array.

tofile(fid[, sep, format])

Write array to a file as text or binary (default).

tolist()

Return the array as an a.ndim-levels deep nested list of Python scalars.

tostring([order])

A compatibility alias for tobytes, with exactly the same behavior.

trace([offset, axis1, axis2, dtype, out])

Return the sum along diagonals of the array.

transpose(*axes)

Returns a view of the array with axes transposed.

update()

call the Updater to do the update

var([axis, dtype, out, ddof, keepdims])

Returns the variance of the array elements, along given axis.

view([dtype][, type])

New view of array with the same data.

setvalue(value)[source]

sets this array to the new value, but keeps its info and owner

class simobject.Simulation[source]

Bases: simobject.heartbeat_object.HeartbeatObject

Simulation object with updatable quantities

This object … - … stores Quantities in _quantities that can be set with addQuantity - … keeps track of the update order in systole, update, diastole - … has itself a systole, and a diastole that can be set - … overrides update which in this case calls all systole, update, and diastoles - … provides a data dictionary to store other data (parameters, …).

the lists systole_order, update_order, and diastole_order can be set, but if they are empty they return the order in which the Quantities were added.

Attributes
data
diastole_order
diastoler
systole_order

the order in which the quantity-systoles are called

systoler
update_order

the order in which the quantity-updates are called

updater

Methods

addQuantity(key, value[, info, updater, …])

adds value as apparent attribute under the name key.

diastole()

call the Diastole updater

systole()

call the Systole updater

update()

updates everything:

addQuantity(key, value, info=None, updater=None, systoler=None, diastoler=None, constant=None, copy=True)[source]

adds value as apparent attribute under the name key.

value will be casted to type Quantity. If a numpy ndarray is passed, a new memory buffer will be created.

If a quantity is passed,

  • … a new Quantity object will be created with the same attributes.

  • … and if value has already updater, systoler, or diastoler, those will be inherited

  • … and if updater, systoler, and/or diastoler are given, those always override the ones that might already be set in value.

  • … and info is None, then key is also set as the info attribute of the Quantity unless that one already had that attribute to begin with, else key is used instead.

property systole_order

the order in which the quantity-systoles are called

update()[source]

updates everything:

it calls: - the systole of the simulation object itself - the systole of all quantities in self.systole_order, then - the update of all quantities in self.update_order, then - the diastole of all quantities in self.diastole_order, then - the diastole of the simulation object itself

property update_order

the order in which the quantity-updates are called

class simobject.Updater(func=None)[source]

Bases: object

An update object that updates the field that it is given.

Parameters

func (callable) – the owner (e.g. simulation) that this Updater is attached to.

Methods

update