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 domaine_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
Calculate sensitivities using backpropagation
Attributes
Get the number of input signals
Get the number of output signals
- 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