BlockVector

Methods specific to pyomo.contrib.pynumero.sparse.block_vector.BlockVector:

Attributes specific to pyomo.contrib.pynumero.sparse.block_vector.BlockVector:

NumPy compatible methods:

For example,

>>> import numpy as np
>>> from pyomo.contrib.pynumero.sparse import BlockVector
>>> v = BlockVector(2)
>>> v.set_block(0, np.random.normal(size=100))
>>> v.set_block(1, np.random.normal(size=30))
>>> avg = v.mean()

NumPy compatible functions:

For example,

>>> import numpy as np
>>> from pyomo.contrib.pynumero.sparse import BlockVector
>>> v = BlockVector(2)
>>> v.set_block(0, np.random.normal(size=100))
>>> v.set_block(1, np.random.normal(size=30))
>>> inf_norm = np.max(np.abs(v))
class pyomo.contrib.pynumero.sparse.block_vector.BlockVector(nblocks)[source]

Structured vector interface. This interface can be used to performe operations on vectors composed by vectors. For example,

>> import numpy as np >> from pyomo.contrib.pynumero.sparse import BlockVector >> bv = BlockVector(3) >> v0 = np.ones(3) >> v1 = v0*2 >> v2 = np.random.normal(size=4) >> bv.set_block(0, v0) >> bv.set_block(1, v1) >> bv.set_block(2, v2) >> bv2 = BlockVector(2) >> bv2.set_block(0, v0) >> bv2.set_block(1, bv)

_nblocks

number of blocks

Type:int
_brow_lengths

1D-Array of size nblocks that specifies the length of each entry in the block vector

Type:numpy.ndarray
_undefined_brows

A set of block indices for which the blocks are still None (i.e., the dimensions have not yet ben set). Operations with BlockVectors require all entries to be different than None.

Type:set
Parameters:nblocks (int) – The number of blocks in the BlockVector
BlockVector.set_block(key, value)[source]

Set a block. The value can be a NumPy array or another BlockVector.

Parameters:
  • key (int) – This is the block index
  • value – This is the block. It can be a NumPy array or another BlockVector.
BlockVector.get_block(key)[source]

Access a block.

Parameters:key (int) – This is the block index
Returns:block – The block corresponding to the index key.
Return type:np.ndarray or BlockVector
BlockVector.block_sizes(copy=True)[source]

Returns 1D-Array with sizes of individual blocks in this BlockVector

BlockVector.get_block_size(ndx)[source]
BlockVector.is_block_defined(ndx)[source]
BlockVector.copyfrom(other)[source]

Copy entries of other vector into this vector

Parameters:other (BlockVector or numpy.ndarray) – vector to be copied to this BlockVector
Returns:
Return type:None
BlockVector.copyto(other)[source]

Copy entries of this BlockVector into other

Parameters:other (BlockVector or numpy.ndarray) –
Returns:
Return type:None
BlockVector.copy_structure()[source]

Returns a copy of the BlockVector structure filled with zeros

BlockVector.set_blocks(blocks)[source]

Assigns vectors in blocks

Parameters:blocks (list) – list of numpy.ndarrays and/or BlockVectors
Returns:
Return type:None
BlockVector.pprint()[source]

Prints BlockVector in pretty format

BlockVector.nblocks()

Returns the number of blocks.

BlockVector.bshape()

Returns the number of blocks in this BlockVector in a tuple.

BlockVector.has_none()

Indicate if this BlockVector has any none entries.