From f1d14147e9d9005b9ce8298f64763a3050ca1162 Mon Sep 17 00:00:00 2001 From: Su Tian Date: Fri, 23 Jul 2021 16:24:32 -0400 Subject: [PATCH] 0723 --- msgpi/cross_section.py | 12 ++++++++---- msgpi/interface.py | 33 +++++++++++++++++---------------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/msgpi/cross_section.py b/msgpi/cross_section.py index e3eb24e..408c132 100644 --- a/msgpi/cross_section.py +++ b/msgpi/cross_section.py @@ -66,17 +66,21 @@ class CrossSection(object): def __init__(self, name): self.name = name - self.name_template = '' #: Base name of the main input file template - self.fn_vabs_in = self.name + '.sg' #: File name of the VABS input - self.fn_sc_in = self.name + '.sg' #: File name of the SwiftComp input + self.fn_design_tmp = '' + self.fn_design_xml = '' + self.fn_sg = '' + # self.fn_vabs_in = self.name + '.sg' #: File name of the VABS input + # self.fn_sc_in = self.name + '.sg' #: File name of the SwiftComp input # self.fn_gmsh_msh = self.name + '.msh' #: File name of the Gmsh mesh file self.sg = None # Structure gene - self.bp = None # Beam property + self.props = None # Beam property # Design self.params = {} + # ------------------------------------------------------------ + self.name_baseline = '' #: Base name of the base lines file self.name_layup = '' #: Base name of the layups file diff --git a/msgpi/interface.py b/msgpi/interface.py index 96d4b21..a4ef390 100644 --- a/msgpi/interface.py +++ b/msgpi/interface.py @@ -1,4 +1,5 @@ import platform +import msgpi.cross_section as mcs import msgpi.analysis as sga import msgpi.logger as mlog import dakota.interfacing as di @@ -6,9 +7,8 @@ class CrossSectionJob(): - def __init__(self, name="", design={}, job_args={}, logger=None): - self.name = name - self.design = design + def __init__(self, cs: mcs.CrossSection, inputs={}, job_args={}, logger=None): + self.cs = cs self.job_args = job_args if logger is None: @@ -16,14 +16,14 @@ def __init__(self, name="", design={}, job_args={}, logger=None): else: self.logger = logger - self.bp = None - self.result = {} + self.inputs = inputs + self.outputs = {} def run(self): - self.logger.info(f'running analysis job for {self.name}...') + self.logger.info(f'running analysis job for {self.cs.name}...') analysis = self.job_args['analysis'] @@ -44,30 +44,31 @@ def run(self): scrnout = self.job_args['scrnout'] - - # preVABS/VABS - fn_main = self.design['fn_cs_main'] + # fn_main = self.design['fn_cs_main'] + # fn_design_xml = self.cs.name + '.xml' # print('\ncs_params') # pprt.pprint(cs_params) # print('\n') # Substitute parameters - di.dprepro( - template=self.design['fn_cs_temp'], output=fn_main, - include=self.design - ) + if self.cs.fn_design_xml == '': + self.cs.fn_design_xml = self.cs.name + '.xml' + di.dprepro( + template=self.cs.fn_design_tmp, output=self.cs.fn_design_xml, + include=self.inputs + ) # Solve - self.bp = sga.solve( - fn_main, analysis, ppcmd, solver, integrated, + self.cs.props = sga.solve( + self.cs.fn_design_xml, analysis, ppcmd, solver, integrated, timeout=timeout, scrnout=scrnout, logger=self.logger ) # Extract beam properties self.logger.debug('extracting beam properties...') for n in self.job_args['beam_properties']: - self.result[n] = self.bp.get(n) + self.outputs[n] = self.cs.props.get(n) # self.cs_data['props'] = self.results