pymoto.ThermoMechanical

class pymoto.ThermoMechanical(domain: VoxelDomain, e_modulus: float = 1.0, poisson_ratio: float = 0.3, alpha: float = 1e-06, plane: str = 'strain')

Determine equivalent thermo-mechanical load from design vector and elemental temperature difference

\(f_\text{thermal} = \mathbf{A} (x\Delta T)_e\)

Input Signal:
  • x*T_delta: Elemental vector of size (#elements) containing elemental densities multiplied by elemental temperature difference

Output Signal:
  • f_thermal: nodal equivalent thermo-mechanical load of size (#dofs_per_node * #nodes)

__init__(domain: VoxelDomain, e_modulus: float = 1.0, poisson_ratio: float = 0.3, alpha: float = 1e-06, plane: str = 'strain')

Initalize thermo-mechanical load module

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

  • e_modulus (float, optional) – Young’s modulus. Defaults to 1.0.

  • poisson_ratio (float, optional) – Poisson ratio. Defaults to 0.3.

  • alpha (float, optional) – Coefficient of thermal expansion. Defaults to 1e-6.

  • plane (str, optional) – plane (str, optional): Plane “strain” or “stress”. Defaults to “strain”.

Methods

__init__(domain[, e_modulus, poisson_ratio, ...])

Initalize thermo-mechanical load 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