Source code for pyleecan.Functions.Simulation.create_from_axis

from SciDataTool.Functions import AxisError


[docs]def create_from_axis(axis_in, per, is_aper, is_include_per, is_remove_aper=False): """ Create axis input axis accounting for (anti-)periodicity changes imposed by physics and model inputs Parameters ---------- axis_in : Data The input axis coming from previous output (a Data object such as Data1D or DataLinspace) per: int machine periodicity along current axis is_aper: bool True if the machine is anti-periodic along current axis is_include_per: bool True if the model requires to include periodicity is_remove_aper: bool True if the model requires to remove anti-periodicity Returns ------- axis_out : Data The output axis (a Data object such as Data1D or DataLinspace) is_include_per : bool Returns is_include_per in case periodicity is activated in the model but cannot be applied """ # Getting the computation axes (with or without periodicity) if is_include_per: try: # Reduce axis to the machine periodicity per = per * 2 if is_aper else per axis_out = axis_in.get_axis_periodic(per, is_aper and not is_remove_aper) except AxisError: # Periodicity cannot be applied, return full axis axis_out = axis_in.copy() is_include_per = False else: # Return full axis axis_out = axis_in.copy() return axis_out, is_include_per