DOF manager

Module edelweissfe.numerics.dofmanager

This module contains important classes for describing the global equation system by means of a sparse system.

class edelweissfe.numerics.dofmanager.DofManager(nodeFields, scalarVariables=[], elements=[], constraints=[], nodeSets=[], initializeVIJPattern=True)[source]

The DofManager

  • analyzes the domain (nodes and constraints),

  • collects information about the necessary structure of the degrees of freedom

  • handles the active fields on each node

  • counts the accumulated number of associated elements on each dof (for the Abaqus like convergence test)

  • supplies the framework with DofVectors and VIJSystemMatrices

Parameters
  • nodeFields (list[edelweissfe.fields.nodefield.NodeField]) – The list of NodeFields which should be represented in the DofVector structure.

  • scalarVariables (list[edelweissfe.variables.scalarvariable.ScalarVariable]) – The list of ScalarVariables which should be represented in the DofVector structure.

  • elements (list[edelweissfe.nodecouplingentity.base.nodecouplingentity.BaseNodeCouplingEntity]) – The list of Elements for which a map to the respective indices should be created.

  • constraints (list[edelweissfe.nodecouplingentity.base.nodecouplingentity.BaseNodeCouplingEntity]) – The list of Constraints for which a map to the respective indices should be created.

  • nodeSets (list[edelweissfe.sets.nodeset.NodeSet]) – The list of NodeSets for which a map to the respective indices should be created.

  • initializeVIJPattern (bool) –

Methods

constructDofVector()

Construct a vector with size=nDof and which has knowledge about the location of each entity.

constructVIJSystemMatrix()

Construct a VIJ (COO) Sparse System matrix object, which also has knowledge about the location of each entity.

getNodeForIndexInDofVector(index)

Find the node for a given index in the equuation system.

writeDofVectorToNodeField(dofVector, ...)

Write the current values of an entire NodeField from the respective locations in a given DofVector.

writeNodeFieldToDofVector(dofVector, ...[, ...])

Write the current values of an entire NodeField to the respective locations in a given DofVector.

constructDofVector()[source]

Construct a vector with size=nDof and which has knowledge about the location of each entity.

Returns

A DofVector.

Return type

DofVector

constructVIJSystemMatrix()[source]

Construct a VIJ (COO) Sparse System matrix object, which also has knowledge about the location of each entity.

Returns

The system Matrix.

Return type

VIJSystemMatrix

getNodeForIndexInDofVector(index)[source]

Find the node for a given index in the equuation system.

Parameters

index (int) – The index in the DofVector.

Returns

The attached Node.

Return type

Node

writeDofVectorToNodeField(dofVector, nodeField, resultName)[source]

Write the current values of an entire NodeField from the respective locations in a given DofVector.

Parameters
  • dofVector – The source DofVector.

  • nodeField – The NodeField to get the updated values.

  • resultname – The name of the value entries held by the NodeField.

Returns

The updated NodeField.

Return type

NodeField

writeNodeFieldToDofVector(dofVector, nodeField, resultName, nodeSet=None)[source]

Write the current values of an entire NodeField to the respective locations in a given DofVector.

Parameters
  • dofVector (DofVector) – The result DofVector.

  • nodeField (NodeField) – The NodeField holding the values.

  • resultname – The name of the value entries held by the NodeField.

  • NodeSet – The NodeSet to consider. If None, all nodes of the NodeField are considered.

  • resultName (str) –

  • nodeSet (NodeSet) –

Returns

The DofVector.

Return type

DofVector

accumulatedConstraintNDof

The accumulated number of constraint dofs (= the sum of all constraint vector sizes)

accumulatedElementNDof

The accumulated number of element dofs (= the sum of all element vector sizes)

fields

The list of fields which can be found in the Dofvector

idcsOfConstraintsInDofVector

The dictionary mapping a constraint to it’s indices in the DofVector

idcsOfElementsInDofVector

The dictionary mapping an element to it’s indices in the DofVector

idcsOfFieldVariablesInDofVector

The dictionary mapping the nodal field variables to the indices in the DofVector

idcsOfFieldsInDofVector

The dictionary mapping the field names to all indices in the DofVector

idcsOfFieldsOnNodeSetsInDofVector

The dictionary mapping for each field a NodeSet to the respective indices in the DofVector

idcsOfNodeFieldsInDofVector

The dictionary mapping the a complete NodeField to the all its indices in the DofVector

idcsOfScalarVariablesInDofVector

The dictionary mapping the scalar variables to all indices in the DofVector

indexToHostObjectMapping

The reverse dictionary mapping an index to the Host (e.g., a Node) holding the index’s FieldvVariable

largestNumberOfConstraintNDof

The size of the largest of all constraint dof vectors

largestNumberOfElNDof

The size of the largest of all element dof vectors

nDof

The total number of degrees of freedom (and size of the DofVector)

class edelweissfe.numerics.dofmanager.DofVector(nDof, entitiesInDofVector)[source]

This class represents a Dof Vector, which also has knowledge of each entities (elements, constraints) location within. The [] operator allows to access (non-contigouos read, write) at each entities location

Parameters
  • nDof (int) – The size of the system.

  • entitiesInVIJ – A dictionary containing the indices of an entitiy in the value vector.

  • entitiesInDofVector (dict) –

Attributes
T

View of the transposed array.

base

Base object if memory is from some other object.

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.

device
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.

itemset
itemsize

Length of one array element in bytes.

mT

View of the matrix transposed array.

nbytes

Total bytes consumed by the elements of the array.

ndim

Number of array dimensions.

newbyteorder
ptp
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.

Methods

all([axis, out, keepdims, where])

Returns True if all elements evaluate to True.

any([axis, out, keepdims, where])

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

argmax([axis, out, keepdims])

Return indices of the maximum values along the given axis.

argmin([axis, out, keepdims])

Return indices of the minimum values along the given axis.

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.

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.

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

Return the maximum along a given axis.

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

Returns the average of the array elements along given axis.

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

Return the minimum along a given axis.

nonzero()

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

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

Partially sorts the elements in the array in such a way that the value of the element in k-th 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

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, copy])

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, respectively.

sort([axis, kind, order])

Sort an array in-place.

squeeze([axis])

Remove axes of length one from a.

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

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.

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 ~ndarray.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.

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

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

view([dtype][, type])

New view of array with the same data.

dot

to_device

class edelweissfe.numerics.dofmanager.VIJSystemMatrix(nDof, I, J, entitiesInVIJ)[source]

This class represents the V Vector of VIJ triple (sparse matrix in COO format), which

  • also contains the I and J vectors as class members,

  • allows to directly access (contiguous read and write) access of each entity via the [] operator

Parameters
  • nDof (int) – The size of the system.

  • I (ndarray) – The I vector for the VIJ triple.

  • J (ndarray) – The J vector for the VIJ triple.

  • entitiesInVIJ (dict) – A dictionary containing the indices of an entitiy in the value vector.

Attributes
T

View of the transposed array.

base

Base object if memory is from some other object.

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.

device
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.

itemset
itemsize

Length of one array element in bytes.

mT

View of the matrix transposed array.

nbytes

Total bytes consumed by the elements of the array.

ndim

Number of array dimensions.

newbyteorder
ptp
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.

Methods

all([axis, out, keepdims, where])

Returns True if all elements evaluate to True.

any([axis, out, keepdims, where])

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

argmax([axis, out, keepdims])

Return indices of the maximum values along the given axis.

argmin([axis, out, keepdims])

Return indices of the minimum values along the given axis.

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.

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.

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

Return the maximum along a given axis.

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

Returns the average of the array elements along given axis.

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

Return the minimum along a given axis.

nonzero()

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

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

Partially sorts the elements in the array in such a way that the value of the element in k-th 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

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, copy])

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, respectively.

sort([axis, kind, order])

Sort an array in-place.

squeeze([axis])

Remove axes of length one from a.

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

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.

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 ~ndarray.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.

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

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

view([dtype][, type])

New view of array with the same data.

dot

to_device