From 0a2b5c478f6217027c517c080dfd9aa5977983dc Mon Sep 17 00:00:00 2001 From: Niko Savola Date: Thu, 14 Jul 2022 12:02:09 +0300 Subject: [PATCH] Add DrivenTerminal support --- pyEPR/ansys.py | 29 +++++++++++++++++++++++++++++ pyEPR/project_info.py | 10 ++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/pyEPR/ansys.py b/pyEPR/ansys.py index 108cc9a..56c4d93 100644 --- a/pyEPR/ansys.py +++ b/pyEPR/ansys.py @@ -715,6 +715,8 @@ def get_setup(self, name=None): return HfssEMSetup(self, name) elif self.solution_type == "DrivenModal": return HfssDMSetup(self, name) + elif self.solution_type == "DrivenTerminal": + return HfssDTSetup(self, name) elif self.solution_type == "Q3D": return AnsysQ3DSetup(self, name) @@ -765,6 +767,26 @@ def create_dm_setup(self, ]) return HfssDMSetup(self, name) + def create_dt_setup(self, + freq_ghz=1, + name="Setup", + max_delta_s=0.1, + max_passes=10, + min_passes=1, + min_converged=1, + pct_refinement=30, + basis_order=-1): + + name = increment_name(name, self.get_setup_names()) + self._setup_module.InsertSetup("HfssDriven", [ + "NAME:" + name, "Frequency:=", + str(freq_ghz) + "GHz", "MaxDeltaS:=", max_delta_s, + "MaximumPasses:=", max_passes, "MinimumPasses:=", min_passes, + "MinimumConvergedPasses:=", min_converged, "PercentRefinement:=", + pct_refinement, "IsEnabled:=", True, "BasisOrder:=", basis_order + ]) + return HfssDTSetup(self, name) + def create_em_setup(self, name="Setup", min_freq_ghz=1, @@ -1331,6 +1353,11 @@ def _map_variables_by_name(self): def get_solutions(self): return HfssDMDesignSolutions(self, self.parent._solutions) +class HfssDTSetup(HfssDMSetup): + + def get_solutions(self): + return HfssDTDesignSolutions(self, self.parent._solutions) + class HfssEMSetup(HfssSetup): """ @@ -1724,6 +1751,8 @@ def create_report(self, class HfssDMDesignSolutions(HfssDesignSolutions): pass +class HfssDTDesignSolutions(HfssDesignSolutions): + pass class HfssQ3DDesignSolutions(HfssDesignSolutions): pass diff --git a/pyEPR/project_info.py b/pyEPR/project_info.py index 58cb5cb..3d20395 100644 --- a/pyEPR/project_info.py +++ b/pyEPR/project_info.py @@ -319,18 +319,20 @@ def connect_setup(self): if len(setup_names) == 0: logger.warning('\tNo design setup detected.') + setup = None if self.design.solution_type == 'Eigenmode': logger.warning('\tCreating eigenmode default setup.') setup = self.design.create_em_setup() - self.setup_name = setup.name elif self.design.solution_type == 'DrivenModal': - logger.warning('\tCreating drivenmodal default setup.') + logger.warning('\tCreating driven modal default setup.') setup = self.design.create_dm_setup() - self.setup_name = setup.name + elif self.design.solution_type == 'DrivenTerminal': + logger.warning('\tCreating driven terminal default setup.') + setup = self.design.create_dt_setup() elif self.design.solution_type == 'Q3D': logger.warning('\tCreating Q3D default setup.') setup = self.design.create_q3d_setup() - self.setup_name = setup.name + self.setup_name = setup.name else: self.setup_name = setup_names[0]