From 545f92e2a21a1ff7d8e20b93a2b20ba6aefa0aaf Mon Sep 17 00:00:00 2001 From: acrovato <a.crovato@uliege.be> Date: Thu, 9 May 2024 11:14:37 +0200 Subject: [PATCH] Add optional geometry parametrization to flutter coupling. --- omflut/coupling.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/omflut/coupling.py b/omflut/coupling.py index 37a8a10..b20da76 100644 --- a/omflut/coupling.py +++ b/omflut/coupling.py @@ -24,10 +24,18 @@ class FlutterGroup(om.Group): self.options.declare('xfer', desc='interpolator', recordable=False) self.options.declare('aero', desc='aerodynamic solver', recordable=False) self.options.declare('flutter', desc='flutter solver', recordable=False) + self.options.declare('geo', desc='optional geometry parametrization', default=None, recordable=False) def setup(self): - self.add_subsystem('mesh_struct', self.options['struct'].get_mesh(), promotes=['x_struct0']) - self.add_subsystem('mesh_aero', self.options['aero'].get_mesh(), promotes=['x_aero0']) + if self.options['geo'] is None: + self.add_subsystem('mesh_struct', self.options['struct'].get_mesh(), promotes=['x_struct0']) + self.add_subsystem('mesh_aero', self.options['aero'].get_mesh(), promotes=['x_aero0']) + else: + self.add_subsystem('mesh_struct', self.options['struct'].get_mesh()) + self.add_subsystem('mesh_aero', self.options['aero'].get_mesh()) + self.add_subsystem('geometry', self.options['geo'].get_mesh(), promotes=['x_struct0', 'x_aero0']) + self.connect('mesh_struct.x_struct0', 'geometry.x_struct_in') + self.connect('mesh_aero.x_aero0', 'geometry.x_aero_in') self.add_subsystem('struct', self.options['struct'].get_solver(self.name), promotes=['x_struct0', 'q_struct', 'M', 'K']) self.add_subsystem('xfer', self.options['xfer'].get_solver(self.name), promotes=['x_struct0', 'q_struct', 'x_aero0', 'q_aero']) self.add_subsystem('aero', self.options['aero'].get_solver(self.name), promotes=['x_aero0', 'q_aero', 'Q_re', 'Q_im']) -- GitLab