Source code for api.simulation.load_cases.load_case_container_setup
""" Handling of load case containers """importtypingfromabcimportabstractmethod,ABCfrommore.api.simulation.load_cases.load_case_setupimportLoadCaseSetupPipeline
[docs]@abstractmethoddefget_available_load_case_names(self)->typing.List[str]:""" Gets the names of existing load cases, with the ordering being the same as the order in the underlying list at the moment of calling this method .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> load_case_container_setup = simulation_setup.create_load_case_container_setup() >>> _ = load_case_container_setup.create_load_case_setup(lc_type='Mechanical load case') >>> _ = load_case_container_setup.create_load_case_setup(lc_type='Mechanical load case') >>> _ = load_case_container_setup.create_load_case_setup(lc_type='Mechanical load case') >>> load_case_container_setup.get_available_load_case_names() ['Mechanical load case', 'Mechanical load case 1', 'Mechanical load case 2'] Returns ------- list of strings Names of available load cases """pass
[docs]@abstractmethoddefcreate_load_case_setup(self,lc_type)->LoadCaseSetupPipeline:""" Creates a load case and returns a corresponding :class:`~api.simulation.load_cases.load_case_setup.LoadCaseSetupPipeline` object .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> load_case_container_setup = simulation_setup.create_load_case_container_setup() >>> load_case_setup = load_case_container_setup.create_load_case_setup(lc_type='Mechanical load case') .. >>> # Test assertions for doctest, will not be rendered because of the '..' sphinx comment above >>> len(load_case_container_setup.load_case_container.load_cases_container.elements) 1 >>> from more.load_cases.mechanical_load_case import MechanicalLoadCase >>> isinstance(load_case_container_setup.load_case_container.load_cases_container.elements[0], MechanicalLoadCase) True >>> load_case_setup._load_case == load_case_container_setup.load_case_container.load_cases_container.elements[0] True >>> load_case_container_setup.create_load_case_setup(lc_type='Non existent LC type') Traceback (most recent call last): ... more.api.exceptions.api_exception.NameNotFoundError: ... Returns ------- :class:`~api.simulation.load_cases.load_case_setup.LoadCaseSetupPipeline` A :class:`~api.simulation.load_cases.load_case_setup.LoadCaseSetupPipeline` object for the created load case Raises ------ NameNotFoundError Raised if no loadd case type with the given name was found """pass
[docs]@abstractmethoddefget_load_case_setup(self,lc_type:typing.Optional[str]=None,name:typing.Optional[str]=None):""" Returns a :class:`~api.simulation.load_cases.load_case_setup.LoadCaseSetupPipeline` object for a load case setup object with the given name .. admonition:: Deprecated :class: warning the 'lc_type' parameter is deprecated and will be removed without replacement in a future MORe release. Please use only the 'name' parameter to specify the load case. .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> load_case_container_setup = simulation_setup.create_load_case_container_setup() .. >>> _load_case_setup = load_case_container_setup.create_load_case_setup(lc_type='Mechanical load case').set_name(name='Example LC') >>> load_case_setup = load_case_container_setup.get_load_case_setup(name='Example LC') # This Load Case must already exist .. >>> # Test assertions for doctest, will not be rendered because of the '..' sphinx comment above >>> len(load_case_container_setup.load_case_container.load_cases_container.elements) 1 >>> from more.load_cases.mechanical_load_case import MechanicalLoadCase >>> isinstance(load_case_container_setup.load_case_container.load_cases_container.elements[0],MechanicalLoadCase) True >>> load_case_setup._load_case == load_case_container_setup.load_case_container.load_cases_container.elements[0] True >>> load_case_setup._load_case == _load_case_setup._load_case True >>> load_case_container_setup.get_load_case_setup(name='Non existent LC') Traceback (most recent call last): ... more.api.exceptions.api_exception.NameNotFoundError: ... Parameters ---------- name : str The name of the existing load case for which to return a :class:`~api.simulation.load_cases.load_case_setup.LoadCaseSetupPipeline` Returns ------- :class:`~api.simulation.load_cases.load_case_setup.LoadCaseSetupPipeline` A :class:`~api.simulation.load_cases.load_case_setup.LoadCaseSetupPipeline` object for the found load case Raises ------ NameNotFoundError Raised if no load case with the given name was found """pass
[docs]@abstractmethoddefremove_load_case_setup(self,lc_type:typing.Optional[str]=None,name:typing.Optional[str]=None)->'LoadCaseContainerSetup':""" Removes a load case .. admonition:: Deprecated :class: warning the 'lc_type' parameter is deprecated and will be removed without replacement in a future MORe release. Please use only the 'name' parameter to specify the load case to remove. .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> load_case_container_setup = simulation_setup.create_load_case_container_setup() .. >>> _load_case_setup = load_case_container_setup.create_load_case_setup(lc_type='Mechanical load case').set_name(name='Example LC') >>> load_case_setup = load_case_container_setup.remove_load_case_setup(name='Example LC') # This Load Case must already exist .. >>> # Test assertions for doctest, will not be rendered because of the '..' sphinx comment above >>> len(load_case_container_setup.load_case_container.load_cases_container.elements) 0 >>> from more.load_cases.mechanical_load_case import MechanicalLoadCase >>> load_case_container_setup.get_load_case_setup(name='Non existent LC') Traceback (most recent call last): ... more.api.exceptions.api_exception.NameNotFoundError: ... Parameters ---------- name : str The name of the existing load case to remove Returns ------- self: LoadCaseContainerSetup Raises ------ NameNotFoundError Raised if no load case with the given name was found """pass
[docs]@abstractmethoddefget_name(self)->str:""" Returns the name of the object .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> load_case_container_setup = simulation_setup.create_load_case_container_setup() >>> load_case_container_setup.set_name(name='new_name') <more...> >>> load_case_container_setup.get_name() 'new_name' Returns ------- name: str The name of the object """pass
[docs]@abstractmethoddefset_name(self,name:str,resolve_duplicate_name:bool=False):""" Sets the name of the load case container .. admonition:: Example :class: note .. >>> import more.project >>> proj = more.project.Project() >>> from more.api import ApiGateway >>> api = ApiGateway(proj=proj) >>> simulation_setup = api.create_simulation_setup() >>> load_case_container_setup = simulation_setup.create_load_case_container_setup() >>> load_case_container_setup.set_name(name='new_name') <more...> >>> simulation_setup.create_load_case_container_setup() \\ ... .set_name(name='new_name', resolve_duplicate_name=True) \\ ... .get_name() 'new_name 1' .. >>> load_case_container_setup._load_case_container.name 'new_name' Trying to set the name to a non-string value >>> load_case_container_setup.set_name(name=None) Traceback (most recent call last): ... TypeError: ... Setting a non-unique name >>> load_case_container_setup.set_name('new_name') Traceback (most recent call last): ... more.api.exceptions.api_exception.NameNotUniqueError: ... Parameters ---------- name : str The new name for the load case container resolve_duplicate_name: bool Whether to automatically assign a new name when the chosen one is already taken Returns ------- self: LoadCaseContainerSetup Raises ------ NameNotUniqueError Raised if the given name is not unique TypeError Raised if the given name is not a string """pass