pymoto.Strain

class pymoto.Strain(domain: VoxelDomain, voigt: bool = True)

Evaluate average mechanical strains in solid elements based on deformation

The strains are returned in Voigt notation. \(\mathbf{\epsilon}_e = \mathbf{B} \mathbf{u}_e\)

Each integration point in the element has different strain values. Here, the average is returned.

The returned strain is either \(\mathbf{\epsilon} = \begin{bmatrix}\epsilon_{xx} & \epsilon_{yy} & \epsilon_{xy} \end{bmatrix}\) in case voigt = False or \(\mathbf{\epsilon} = \begin{bmatrix}\epsilon_{xx} & \epsilon_{yy} & \gamma_{xy} \end{bmatrix}\) in case voigt = True, for which \(\gamma_{xy}=2\epsilon_{xy}\).

Input Signal:
  • u: Nodal vector of size (#dofs_per_node * #nodes)

Output Signal:
  • e: Strain matrix of size (#strains_per_element, #elements)

__init__(domain: VoxelDomain, voigt: bool = True)

Initialize strain evaluation module

Parameters:
  • domain (pymoto.VoxelDomain) – The finite element domain

  • voigt (bool, optional) – Use Voigt strain notation (2x off-diagonal strain contribution). Defaults to True.

Methods

__init__(domain[, voigt])

Initialize strain evaluation module

connect(sig_in[, sig_out])

Connect without automatic adding to a function network

get_input_sensitivities([as_list])

get_input_states([as_list])

get_output_sensitivities([as_list])

get_output_states([as_list])

reset()

Reset the state of the sensitivities (they are set to zero or to None)

response()

Calculate the response from sig_in and output this to sig_out

sensitivity()

Calculate sensitivities using backpropagation

Attributes

n_in

Get the number of input signals

n_out

Get the number of output signals

sig_in

sig_out

connect(sig_in: Signal | Iterable[Signal], sig_out: Signal | Iterable[Signal] = None)

Connect without automatic adding to a function network

get_input_sensitivities(as_list=False)
get_input_states(as_list=False)
get_output_sensitivities(as_list=False)
get_output_states(as_list=False)
property n_in: int

Get the number of input signals

property n_out: int

Get the number of output signals

Note: Cannot be used in the initial __call__()

reset()

Reset the state of the sensitivities (they are set to zero or to None)

response()

Calculate the response from sig_in and output this to sig_out

sensitivity()

Calculate sensitivities using backpropagation

Based on the sensitivity we get from sig_out, reverse the process and output the new sensitivities to sig_in

sig_in: List = None
sig_out: List = None