From 864d72b4c7cabe483ec34237b1c46b5350065c3a Mon Sep 17 00:00:00 2001 From: rlagha Date: Wed, 2 Oct 2024 13:26:34 +0000 Subject: [PATCH] update generated code --- src/ansys/dpf/core/operators/math/__init__.py | 1 - .../core/operators/math/mode_contribution.py | 366 ------------------ src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll | Bin 11716608 -> 11716096 bytes src/ansys/dpf/gatebin/DPFClientAPI.dll | Bin 882688 -> 882688 bytes .../dpf/gatebin/libAns.Dpf.GrpcClient.so | Bin 30299304 -> 30299144 bytes src/ansys/dpf/gatebin/libDPFClientAPI.so | Bin 2209584 -> 2209584 bytes 6 files changed, 367 deletions(-) delete mode 100644 src/ansys/dpf/core/operators/math/mode_contribution.py diff --git a/src/ansys/dpf/core/operators/math/__init__.py b/src/ansys/dpf/core/operators/math/__init__.py index 09696cd63cf..9c74f94fe65 100644 --- a/src/ansys/dpf/core/operators/math/__init__.py +++ b/src/ansys/dpf/core/operators/math/__init__.py @@ -57,7 +57,6 @@ from .modal_damping_ratio import modal_damping_ratio from .modal_participation import modal_participation from .modal_superposition import modal_superposition -from .mode_contribution import mode_contribution from .modulus import modulus from .nodal_density import nodal_density from .norm import norm diff --git a/src/ansys/dpf/core/operators/math/mode_contribution.py b/src/ansys/dpf/core/operators/math/mode_contribution.py deleted file mode 100644 index 23f9bfc8077..00000000000 --- a/src/ansys/dpf/core/operators/math/mode_contribution.py +++ /dev/null @@ -1,366 +0,0 @@ -""" -mode_contribution -================= -Autogenerated DPF operator classes. -""" - -from warnings import warn -from ansys.dpf.core.dpf_operator import Operator -from ansys.dpf.core.inputs import Input, _Inputs -from ansys.dpf.core.outputs import Output, _Outputs -from ansys.dpf.core.operators.specification import PinSpecification, Specification - - -class mode_contribution(Operator): - """Compute the mode contribution - - Parameters - ---------- - evalution_solution : FieldsContainer - Evalution solution - mode_solution : FieldsContainer - Mode solution - mode_shapes : FieldsContainer - result_type : str - Result type - output_dof_index : int, optional - The output dof index - - - Examples - -------- - >>> from ansys.dpf import core as dpf - - >>> # Instantiate operator - >>> op = dpf.operators.math.mode_contribution() - - >>> # Make input connections - >>> my_evalution_solution = dpf.FieldsContainer() - >>> op.inputs.evalution_solution.connect(my_evalution_solution) - >>> my_mode_solution = dpf.FieldsContainer() - >>> op.inputs.mode_solution.connect(my_mode_solution) - >>> my_mode_shapes = dpf.FieldsContainer() - >>> op.inputs.mode_shapes.connect(my_mode_shapes) - >>> my_result_type = str() - >>> op.inputs.result_type.connect(my_result_type) - >>> my_output_dof_index = int() - >>> op.inputs.output_dof_index.connect(my_output_dof_index) - - >>> # Instantiate operator and connect inputs in one line - >>> op = dpf.operators.math.mode_contribution( - ... evalution_solution=my_evalution_solution, - ... mode_solution=my_mode_solution, - ... mode_shapes=my_mode_shapes, - ... result_type=my_result_type, - ... output_dof_index=my_output_dof_index, - ... ) - - >>> # Get output data - >>> result_output = op.outputs.output() - >>> result_output_component = op.outputs.output_component() - """ - - def __init__( - self, - evalution_solution=None, - mode_solution=None, - mode_shapes=None, - result_type=None, - output_dof_index=None, - config=None, - server=None, - ): - super().__init__(name="mode_contribution", config=config, server=server) - self._inputs = InputsModeContribution(self) - self._outputs = OutputsModeContribution(self) - if evalution_solution is not None: - self.inputs.evalution_solution.connect(evalution_solution) - if mode_solution is not None: - self.inputs.mode_solution.connect(mode_solution) - if mode_shapes is not None: - self.inputs.mode_shapes.connect(mode_shapes) - if result_type is not None: - self.inputs.result_type.connect(result_type) - if output_dof_index is not None: - self.inputs.output_dof_index.connect(output_dof_index) - - @staticmethod - def _spec(): - description = """Compute the mode contribution""" - spec = Specification( - description=description, - map_input_pin_spec={ - 0: PinSpecification( - name="evalution_solution", - type_names=["fields_container"], - optional=False, - document="""Evalution solution""", - ), - 1: PinSpecification( - name="mode_solution", - type_names=["fields_container"], - optional=False, - document="""Mode solution""", - ), - 2: PinSpecification( - name="mode_shapes", - type_names=["fields_container"], - optional=False, - document="""""", - ), - 3: PinSpecification( - name="result_type", - type_names=["string"], - optional=False, - document="""Result type""", - ), - 4: PinSpecification( - name="output_dof_index", - type_names=["int32"], - optional=True, - document="""The output dof index""", - ), - }, - map_output_pin_spec={ - 0: PinSpecification( - name="output", - type_names=["fields_container"], - optional=False, - document="""""", - ), - 1: PinSpecification( - name="output_component", - type_names=["fields_container"], - optional=False, - document="""""", - ), - }, - ) - return spec - - @staticmethod - def default_config(server=None): - """Returns the default config of the operator. - - This config can then be changed to the user needs and be used to - instantiate the operator. The Configuration allows to customize - how the operation will be processed by the operator. - - Parameters - ---------- - server : server.DPFServer, optional - Server with channel connected to the remote or local instance. When - ``None``, attempts to use the global server. - """ - return Operator.default_config(name="mode_contribution", server=server) - - @property - def inputs(self): - """Enables to connect inputs to the operator - - Returns - -------- - inputs : InputsModeContribution - """ - return super().inputs - - @property - def outputs(self): - """Enables to get outputs of the operator by evaluating it - - Returns - -------- - outputs : OutputsModeContribution - """ - return super().outputs - - -class InputsModeContribution(_Inputs): - """Intermediate class used to connect user inputs to - mode_contribution operator. - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> my_evalution_solution = dpf.FieldsContainer() - >>> op.inputs.evalution_solution.connect(my_evalution_solution) - >>> my_mode_solution = dpf.FieldsContainer() - >>> op.inputs.mode_solution.connect(my_mode_solution) - >>> my_mode_shapes = dpf.FieldsContainer() - >>> op.inputs.mode_shapes.connect(my_mode_shapes) - >>> my_result_type = str() - >>> op.inputs.result_type.connect(my_result_type) - >>> my_output_dof_index = int() - >>> op.inputs.output_dof_index.connect(my_output_dof_index) - """ - - def __init__(self, op: Operator): - super().__init__(mode_contribution._spec().inputs, op) - self._evalution_solution = Input( - mode_contribution._spec().input_pin(0), 0, op, -1 - ) - self._inputs.append(self._evalution_solution) - self._mode_solution = Input(mode_contribution._spec().input_pin(1), 1, op, -1) - self._inputs.append(self._mode_solution) - self._mode_shapes = Input(mode_contribution._spec().input_pin(2), 2, op, -1) - self._inputs.append(self._mode_shapes) - self._result_type = Input(mode_contribution._spec().input_pin(3), 3, op, -1) - self._inputs.append(self._result_type) - self._output_dof_index = Input( - mode_contribution._spec().input_pin(4), 4, op, -1 - ) - self._inputs.append(self._output_dof_index) - - @property - def evalution_solution(self): - """Allows to connect evalution_solution input to the operator. - - Evalution solution - - Parameters - ---------- - my_evalution_solution : FieldsContainer - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> op.inputs.evalution_solution.connect(my_evalution_solution) - >>> # or - >>> op.inputs.evalution_solution(my_evalution_solution) - """ - return self._evalution_solution - - @property - def mode_solution(self): - """Allows to connect mode_solution input to the operator. - - Mode solution - - Parameters - ---------- - my_mode_solution : FieldsContainer - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> op.inputs.mode_solution.connect(my_mode_solution) - >>> # or - >>> op.inputs.mode_solution(my_mode_solution) - """ - return self._mode_solution - - @property - def mode_shapes(self): - """Allows to connect mode_shapes input to the operator. - - Parameters - ---------- - my_mode_shapes : FieldsContainer - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> op.inputs.mode_shapes.connect(my_mode_shapes) - >>> # or - >>> op.inputs.mode_shapes(my_mode_shapes) - """ - return self._mode_shapes - - @property - def result_type(self): - """Allows to connect result_type input to the operator. - - Result type - - Parameters - ---------- - my_result_type : str - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> op.inputs.result_type.connect(my_result_type) - >>> # or - >>> op.inputs.result_type(my_result_type) - """ - return self._result_type - - @property - def output_dof_index(self): - """Allows to connect output_dof_index input to the operator. - - The output dof index - - Parameters - ---------- - my_output_dof_index : int - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> op.inputs.output_dof_index.connect(my_output_dof_index) - >>> # or - >>> op.inputs.output_dof_index(my_output_dof_index) - """ - return self._output_dof_index - - -class OutputsModeContribution(_Outputs): - """Intermediate class used to get outputs from - mode_contribution operator. - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> # Connect inputs : op.inputs. ... - >>> result_output = op.outputs.output() - >>> result_output_component = op.outputs.output_component() - """ - - def __init__(self, op: Operator): - super().__init__(mode_contribution._spec().outputs, op) - self._output = Output(mode_contribution._spec().output_pin(0), 0, op) - self._outputs.append(self._output) - self._output_component = Output(mode_contribution._spec().output_pin(1), 1, op) - self._outputs.append(self._output_component) - - @property - def output(self): - """Allows to get output output of the operator - - Returns - ---------- - my_output : FieldsContainer - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> # Connect inputs : op.inputs. ... - >>> result_output = op.outputs.output() - """ # noqa: E501 - return self._output - - @property - def output_component(self): - """Allows to get output_component output of the operator - - Returns - ---------- - my_output_component : FieldsContainer - - Examples - -------- - >>> from ansys.dpf import core as dpf - >>> op = dpf.operators.math.mode_contribution() - >>> # Connect inputs : op.inputs. ... - >>> result_output_component = op.outputs.output_component() - """ # noqa: E501 - return self._output_component diff --git a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll index 5ede6ba2362f73e7245c5092b8eb04458baccc0d..0303367c1b3b396a5b9bf77c410e03d7c7fe852e 100644 GIT binary patch delta 3020786 zcmaf+dt6ji_r_sh95fY-O!E>Lnzu}pyi^t_nwXjxm0c_`GJVUEqOvzFFfv0lQPNXs ziIQ1biBX}cNs-a@)uOVCg+}J2mKd2`D1Xnh*51wmrq7Q*hBbSCXRmekdDc4n4Cfqj z3O?}WEcn1%k`j8>!)O0}bBOt=4LK|J6i@4}AtkdyLLNI`T0i`x@Rrc-p_zqCLI(~g z|8{lAE7ygD+;u^5$TOknFDVV#%il>ahCF^-Gcyc+m6wKmzb-T+b=A_4%*9%4kt zNDnke6)g=(B5!}nXN8osTHK|>spsA`<=(r{`ojjej)GBAc&+EmfnU7V9fP516Mnyf z->#n|xIOo#$#+dgTkRXoLqc+jLqab0g@jBme96k2>j#56~=As*1} z3;zMY02ye=3;5lk^z5)YZ&Y!&7ej{UdyC{(+o!sf_H2IN7|)HfoH^6OI~JB-d4{Lv zi_)*JtQ+GwP1?>V{Bd=OCoaEqdGULfd)~ayxnsI-Tw%d)qhCJ$O*2n*d};OHGn;vC z?&Vw^9=gM`vS(S0H?%O+QzGD)*L

iSneiE4#H_Xml4(wzMWW<%2^X4}G)jn)5?X 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