Ejemplo n.º 1
0
def make_IDF_XDSM():

    dsm = XDSM()
    ad = lambda *args, **kargs: dsm.addComp(*args, **kargs)
    co = lambda *args, **kargs: dsm.addDep(*args, **kargs)

    # add diagnol (Component) in order from up to down

    ad('EMPTY', 'Analysis', '')
    #all 'EMPTY' heading name component is used for Input and output,
    # the component will not be shown,
    # here used for upper input and left output
    ad('opt', 'Optimization', r'$0,3\to 1$:\\Optimization')
    ad('ana', 'Analysis, stack', r'$1$\\Analysis $i$')
    ad('fun', 'Function', r'$2$\\Functions')

    #add dependency variables, here order free
    co('opt', 'EMPTY', 'DataInter',
       r'$\mathbf{x}^{(0)}, \hat{\mathbf{y}}^{(0)}$')
    co('EMPTY', 'opt', 'DataInter',
       r'$x^*$')
    co('ana', 'opt', 'DataInter',
       r'$1:\mathbf{x}_0, \mathbf{x}_i, \hat{\mathbf{y}}_{j\neq i}$')
    co('EMPTY', 'ana', 'DataInter,stack',
       r'$\mathbf{y}_i^*$')
    co('fun', 'opt', 'DataInter',
       r'$2:\mathbf{x}, \hat{\mathbf{y}}$')
    co('fun', 'ana', 'DataInter, stack',
       r'$2:\mathbf{y}_i$')
    co('opt', 'fun', 'DataInter',
       '$3:f_0,\mathbf{c}, \mathbf{c}^c$')

    # component name from start to the end in turn
    dsm.addChain([
        'opt-EMPTY', 'opt', 'ana', 'fun', 'opt', 'EMPTY-opt'])
    #the dependency node using "downstream_component-upstream_component"

    # output tex file and compile it
    dsm.write(r'IDF.pdf', compilepdf=True)
Ejemplo n.º 2
0
from XDSM import XDSM

opt = 'Optimization'
anl = 'Analysis'
dat = 'DataInter'

x = XDSM()
x.addComp('opt', opt, 'Optimizer')
#x.addComp('Solver', 'MDA', 'Solver')
x.addComp('f', anl, '$F(x,y)$')
x.addComp('fp', anl, "$F^\prime(x,y)$")

x.addDep('f', 'opt', dat, '$x, y$')
x.addDep('fp', 'opt', dat, '$x, y$')
x.addDep('opt', 'f', dat, '$f(x,y), g(x), h(y)$')
x.addDep('opt', 'fp', dat,
         r'$\frac{df}{dx}, \frac{df}{dy}, \frac{dg}{dx}, \frac{dh}{dy}$')

x.write('basic_opt', True)
Ejemplo n.º 3
0
from XDSM import XDSM

opt = 'Optimization'
anl = 'Analysis'
dat = 'DataInter'
proc = 'DataIO'

x = XDSM()
x.addComp('opt', opt, 'Optimizer')
x.addComp('mda', 'MDA', 'Solver')
x.addComp('f', anl, '$F(x,y)$')
x.addComp('fp', anl, "$F^\prime(x,y)$")

x.addDep('f', 'opt', dat, '$x$')

x.addDep('f', 'mda', dat, '$y$')
x.addDep('fp', 'mda', dat, '$y$')
x.addDep('mda', 'f', dat, '$h$')
x.addDep('mda', 'fp', dat, r'$\frac{dh}{dy}$')

x.addDep('fp', 'opt', dat, '$x$')
x.addDep('opt', 'f', dat, '$f, g$')
x.addDep('opt', 'fp', dat, r'$\frac{df}{dx}, \frac{dh}{dy}, \frac{dg}{dx}$')

x.write('mda', True)
Ejemplo n.º 4
0
from XDSM import XDSM

opt = 'Optimization'
anl = 'Analysis'
dat = 'DataInter'

x = XDSM()
x.addComp('Optimizer', opt, 'Optimizer')
x.addComp('Solver', 'MDA', 'Solver')
x.addComp('A', anl, 'A')
x.addComp('B', anl, 'B')


x.addDep('A', 'Optimizer', dat, 'x', True)
x.addDep('Solver', 'B', dat, 'y2')
x.addDep('Solver', 'A', dat, 'y1')
x.addDep('A', 'Solver', dat, 'y2')
x.addDep('B', 'Solver', dat, 'y1')
x.addDep('Optimizer','B', dat, 'z')


x.write('mdf_sample',True)
Ejemplo n.º 5
0
opt = 'Optimization'
dat = 'DataInter'

x = XDSM()
x.addComp('opt', 'Analysis', 'Optimizer')
x.addComp('splines', opt, 'Control Splines')
x.addComp('atmo', opt, 'Atmostpherics')

x.addComp('solver', 'MDA', 'Solver')
x.addComp('aero', opt, 'Aerodynamics')

x.addComp('prop', opt, 'Propulsion')
x.addComp('perf', opt, '\TwolineComponent{2.1cm}{Mission}{Performance}')

x.addDep('splines', 'opt', dat, 'Alt, MN')

#x.addDep('prop', 'splines', dat, '')
x.addDep('aero', 'splines', dat, '')
x.addDep('atmo', 'splines', dat, '')
x.addDep('prop', 'splines', dat, '')

x.addDep('aero', 'atmo', dat, '')
x.addDep('prop', 'atmo', dat, '')

x.addDep('aero', 'solver', dat, '')
x.addDep('solver', 'aero', dat, '')

x.addDep('perf', 'prop', dat, '')
x.addDep('perf', 'aero', dat, '')
x.addDep('perf', 'atmo', dat, '')
Ejemplo n.º 6
0
x.addComp('Optimizer', 'Analysis', Large + 'Optimizer')

x.addComp('solver', 'MDA', Large + 'Solver')

x.addComp('rotor', opt, Large + 'Rotor')
x.addComp('hub', opt, Large + 'Hub')
x.addComp('nacelle', opt, Large + 'Nacelle')
x.addComp('tower', opt, Large + 'Tower')
x.addComp('deflection', opt, Large + 'Tower Strike')
x.addComp('aep_a', opt, Large + 'AEP')
x.addComp('opex_a', opt, Large + 'Op. Exp.')
x.addComp('tcc_a', opt, Large + 'Cap. Cost')
x.addComp('bos_a', opt, Large + 'BOS')
x.addComp('fin_a', opt, Large + 'Fin.')

x.addDep('rotor', 'solver', dat, "$L_{blade}, precurve$")
x.addDep('solver', 'rotor', dat, "$\Delta_{L}, \Delta_{precurve}$")

x.addDep('tcc_a', 'rotor', dat, '$m_{blade}$, $P_{rated}$')
x.addDep('tcc_a', 'hub', dat, '$m_{hub}$')
x.addDep('tcc_a', 'nacelle', dat, '$m_{nacelle}$')
x.addDep('tcc_a', 'tower', dat, '$m_{tower}$')

x.addDep('bos_a', 'rotor', dat,
         '\TwolineComponent{2.1cm}{$m_{blade}$, $P_{rated}$}{$d_{rotor}$}')
x.addDep('bos_a', 'tcc_a', dat, "$\$_{tcc}$")

x.addDep('opex_a', 'rotor', dat, '$P_{rated}$')
x.addDep('opex_a', 'aep_a', dat, '$AEP_{net}$')

x.addDep('aep_a', 'rotor', dat, '$AEP$')
Ejemplo n.º 7
0
from XDSM import XDSM

opt = 'Optimization'
anl = 'Analysis'
dat = 'DataInter'

x = XDSM()
x.addComp('Optimizer', opt, 'Optimizer')
x.addComp('Solver', 'MDA', 'Solver')
x.addComp('A', anl, 'A')
x.addComp('B', anl, 'B')

x.addDep('A', 'Optimizer', dat, 'x', True)
x.addDep('Solver', 'B', dat, 'y2')
x.addDep('Solver', 'A', dat, 'y1')
x.addDep('A', 'Solver', dat, 'y2')
x.addDep('B', 'Solver', dat, 'y1')
x.addDep('Optimizer', 'B', dat, 'z')

x.write('mdf_sample', True)
Ejemplo n.º 8
0
from XDSM import XDSM

opt = 'Optimization'
dat = 'DataInter'

x = XDSM()

x.addComp('Optimizer', 'Analysis', 'Optimizer')
x.addComp('solver', 'MDA', 'Solver')
x.addComp('C1', opt, 'C1')
x.addComp('C2', opt, 'C2')
x.addComp('C3', opt, 'C3')

x.addDep('C1', 'solver', dat, "$y_1$")
x.addDep('C2', 'C1', dat, "$y_2$")
x.addDep('solver', 'C2', dat, "$y_1$")
x.addDep('C3', 'C2', dat, "$y_1$")

x.addDep('C1', 'Optimizer', dat, "$x_1$")
x.addDep('C3', 'Optimizer', dat, "$x_2$")
x.addDep('Optimizer', 'C3', dat, "$f$")

x.write('total_v_partial', True)
Ejemplo n.º 9
0
name = 'assembly inputs'
x.addComp(name, anl, name)
name = 'capsule'
x.addComp(name, anl, name)
name = 'tube'
x.addComp(name, anl, name)
name = 'battery'
x.addComp(name, anl, name)
name = 'inlet'
x.addComp(name, anl, name)
name = 'aero'
x.addComp(name, anl, name)
name = 'assembly outputs'
x.addComp(name, anl, name)

x.addDep('inlet', 'assembly inputs', dat, '', stack=True)
x.addDep('aero', 'assembly inputs', dat, '', stack=True)
x.addDep('battery', 'assembly inputs', dat, '', stack=True)
x.addDep('tube', 'assembly inputs', dat, '', stack=True)

x.addDep('inlet', 'capsule', dat, '', stack=True)
x.addDep('battery', 'capsule', dat, '', stack=True)
x.addDep('assembly outputs', 'capsule', dat, '', stack=True)

x.addDep('assembly outputs', 'inlet', dat, '', stack=True)
x.addDep('aero', 'inlet', dat, '', stack=True)

x.addDep('assembly outputs', 'aero', dat, '', stack=True)

x.addDep('assembly outputs', 'battery', dat, '', stack=True)
Ejemplo n.º 10
0
from XDSM import XDSM

opt = 'Optimization'
dat = 'DataInter'
mda = 'MDA'
anl = 'Analysis'

x = XDSM()

names = ['assembly inputs', 'tube', 'inlet' , 'comp1', 'duct1', 'split', 'nozzle', 
         'comp2', 'duct2', 'perf', 'assembly outputs']
for name in names: 
    x.addComp(name, anl, name)

x.addDep('tube', 'assembly inputs', dat, '', stack=True)
x.addDep('inlet', 'assembly inputs', dat, '', stack=True)
x.addDep('comp1', 'assembly inputs', dat, '', stack=True)
x.addDep('split', 'assembly inputs', dat, '', stack=True)
x.addDep('comp2', 'assembly inputs', dat, '', stack=True)
x.addDep('perf', 'assembly inputs', dat, '', stack=True)

x.addDep('inlet', 'tube', dat, '', stack=True)
x.addDep('comp1', 'inlet', dat, '', stack=True)
x.addDep('duct1', 'comp1', dat, '', stack=True)
x.addDep('split', 'duct1', dat, '', stack=True)
x.addDep('nozzle', 'split', dat, '', stack=True)
x.addDep('comp2', 'split', dat, '', stack=True)
x.addDep('duct2', 'comp2', dat, '', stack=True)
x.addDep('perf', 'nozzle', dat, '', stack=True)
x.addDep('perf', 'comp2', dat, '', stack=True)
x.addDep('comp2', 'perf', dat, '', stack=True)
Ejemplo n.º 11
0
from XDSM import XDSM

opt = 'Optimization'
dat = 'DataInter'

x = XDSM()
x.addComp('Optimizer', 'Analysis', 'Optimizer')
x.addComp('Orbit', opt, 'Orbit Dynamics')
x.addComp('Attitude', opt, 'Attitude Dynamics')
x.addComp('Solar', opt, 'Cell Illumination')
x.addComp('Thermal', opt, 'Temperature')
x.addComp('Electrical', opt, 'Solar Power')
x.addComp('Battery', opt, 'Energy Storage')
x.addComp('Comm', opt, 'Communication')

x.addDep('Optimizer', 'Battery', dat, 'Constraints')
x.addDep('Optimizer', 'Comm', dat, 'Data downloaded')
x.addDep('Attitude', 'Optimizer', dat, 'Roll angle')
x.addDep('Solar', 'Attitude', dat, 'Attitude')
x.addDep('Solar', 'Orbit', dat, 'Position')
x.addDep('Thermal', 'Solar', dat, 'Exp. area')
x.addDep('Thermal', 'Optimizer', dat, 'Comm power')
x.addDep('Electrical', 'Solar', dat, 'Exp. area')
x.addDep('Electrical', 'Optimizer', dat, 'Panel current')
x.addDep('Electrical', 'Thermal', dat, 'Temperature')
x.addDep('Battery', 'Electrical', dat, 'Solar power')
x.addDep('Battery', 'Thermal', dat, 'Temperature')
x.addDep('Battery', 'Attitude', dat, 'Actuator power')
x.addDep('Battery', 'Optimizer', dat, 'Comm power')
x.addDep('Comm', 'Attitude', dat, 'Attitude')
x.addDep('Comm', 'Orbit', dat, 'Position')
Ejemplo n.º 12
0
from XDSM import XDSM

opt = 'Optimization'
dat = 'DataInter'

x = XDSM()
x.addComp('Optimizer', 'Analysis', 'Optimizer')
x.addComp('Orbit', opt, 'Orbit Dynamics')
x.addComp('Attitude', opt, 'Attitude Dynamics')
x.addComp('Solar', opt, 'Cell Illumination')
x.addComp('Thermal', opt, 'Temperature')
x.addComp('Electrical', opt, 'Solar Power')
x.addComp('Battery', opt, 'Energy Storage')
x.addComp('Comm', opt, 'Communication')

x.addDep('Optimizer', 'Battery', dat, '')
x.addDep('Optimizer', 'Comm', dat, '')
x.addDep('Attitude', 'Optimizer', dat, '')
x.addDep('Solar', 'Attitude', dat, '')
x.addDep('Solar', 'Orbit', dat, '')
x.addDep('Thermal', 'Solar', dat, '')
x.addDep('Thermal', 'Optimizer', dat, '')
x.addDep('Electrical', 'Solar', dat, '')
x.addDep('Electrical', 'Optimizer', dat, '')
x.addDep('Electrical', 'Thermal', dat, '')
x.addDep('Battery', 'Electrical', dat, '')
x.addDep('Battery', 'Thermal', dat, '')
x.addDep('Battery', 'Attitude', dat, '')
x.addDep('Battery', 'Optimizer', dat, '')
x.addDep('Comm', 'Attitude', dat, '')
x.addDep('Comm', 'Orbit', dat, '')
Ejemplo n.º 13
0
opt = 'Optimization'
dat = 'DataInter'
mda = 'MDA'
anl = 'Analysis'

x = XDSM()

names = [
    'assembly inputs', 'tube', 'inlet', 'comp1', 'duct1', 'split', 'nozzle',
    'comp2', 'duct2', 'perf', 'assembly outputs'
]
for name in names:
    x.addComp(name, anl, name)

x.addDep('tube', 'assembly inputs', dat, '', stack=True)
x.addDep('inlet', 'assembly inputs', dat, '', stack=True)
x.addDep('comp1', 'assembly inputs', dat, '', stack=True)
x.addDep('split', 'assembly inputs', dat, '', stack=True)
x.addDep('comp2', 'assembly inputs', dat, '', stack=True)
x.addDep('perf', 'assembly inputs', dat, '', stack=True)

x.addDep('inlet', 'tube', dat, '', stack=True)
x.addDep('comp1', 'inlet', dat, '', stack=True)
x.addDep('duct1', 'comp1', dat, '', stack=True)
x.addDep('split', 'duct1', dat, '', stack=True)
x.addDep('nozzle', 'split', dat, '', stack=True)
x.addDep('comp2', 'split', dat, '', stack=True)
x.addDep('duct2', 'comp2', dat, '', stack=True)
x.addDep('perf', 'nozzle', dat, '', stack=True)
x.addDep('perf', 'comp2', dat, '', stack=True)
Ejemplo n.º 14
0
name = 'assembly inputs'
x.addComp(name, anl, name)
name = 'capsule'
x.addComp(name, anl, name)
name = 'tube'
x.addComp(name, anl, name)
name = 'battery'
x.addComp(name, anl, name)
name = 'inlet'
x.addComp(name, anl, name)
name = 'aero'
x.addComp(name, anl, name)
name = 'assembly outputs'
x.addComp(name, anl, name)

x.addDep('inlet', 'assembly inputs', dat, '', stack=True)
x.addDep('aero', 'assembly inputs', dat, '', stack=True)
x.addDep('battery', 'assembly inputs', dat, '', stack=True)
x.addDep('tube', 'assembly inputs', dat, '', stack=True)

x.addDep('inlet', 'capsule', dat, '', stack=True)
x.addDep('battery', 'capsule', dat, '', stack=True)
x.addDep('assembly outputs', 'capsule', dat, '', stack=True)

x.addDep('assembly outputs', 'inlet', dat, '', stack=True)
x.addDep('aero', 'inlet', dat, '', stack=True)

x.addDep('assembly outputs', 'aero', dat, '', stack=True)

x.addDep('assembly outputs', 'battery', dat, '', stack=True)
Ejemplo n.º 15
0
from XDSM import XDSM

opt = 'Optimization'
dat = 'DataInter'

x = XDSM()

x.addComp('Optimizer', 'Analysis', 'Optimizer')
x.addComp('C1', opt, 'C1')
x.addComp('solver', 'MDA', 'Solver')
x.addComp('C3', opt, 'C3')
x.addComp('C4', opt, 'C4')
x.addComp('C5', opt, 'C5')

x.addDep('C4', 'C1', dat, "")

x.addDep('C4', 'C3', dat, "")
x.addDep('C3', 'solver', dat, "")
x.addDep('C4', 'C3', dat, "")
x.addDep('solver', 'C4', dat, "")
x.addDep('C5', 'C4', dat, "")


x.addDep('C1', 'Optimizer', dat, "")
x.addDep('C3', 'Optimizer', dat, "")
x.addDep('Optimizer', 'C5', dat, "")




x.write('mixed_derivs_sample_xdsm',True)
Ejemplo n.º 16
0
from XDSM import XDSM

opt = 'Optimization'
anl = 'Analysis'
dat = 'DataInter'

x = XDSM()
x.addComp('opt', opt, 'Optimizer')
#x.addComp('sol', 'MDA', 'Solver')
x.addComp('geom', anl, 'Geometry')
x.addComp('prop', anl, 'Propeller')
x.addComp('aero', anl, 'Aerodynamics')
x.addComp('struct', anl, 'Structures')
x.addComp('dyn', anl, 'Dynamics')

x.addDep('opt', 'prop', dat, '$Pwr$', False)
x.addDep('opt', 'dyn', dat, '$Disp_{dynamic}$', False)
x.addDep('opt', 'struct', dat, '$stress$', False)



x.addDep('geom', 'opt', dat, '\ThreelineComponent{2.55cm}{$s, c_{prop},$}{$twist_{prop}, D_{Prop}$}{$c_{wing},twist_{wing}$}', False)
x.addDep('prop', 'geom', dat, '$mesh_{prop}$', False)
x.addDep('aero', 'geom', dat, '$mesh_{wing}$', False)
x.addDep('struct', 'geom', dat, '$mesh_{wing}$', False)

x.addDep('prop', 'opt', dat, '$D_{prop}$', False)
x.addDep('aero', 'opt', dat, '\TwolineComponent{2.55cm}{$s, c_{wing},$}{$twist_{wing}, D_{Prop}$}', False)
x.addDep('struct', 'opt', dat, '$Thk$', False)
x.addDep('prop', 'opt', dat, 'RPM', False)
Ejemplo n.º 17
0
opt = 'Optimization'
dat = 'DataInter'
mda = 'MDA'
anl = 'Analysis'

x = XDSM()
#x.addComp('driver', mda, 'Solver')
x.addComp('assembly inputs', anl, 'assembly inputs')
x.addComp('compress', anl, 'compress')
x.addComp('mission', anl, 'mission')
x.addComp('pod', anl, 'pod')
x.addComp('flow_limit', anl, 'flow\_limit')
x.addComp('tube_wall_temp', anl, 'tube\_wall\_temp')

x.addDep('mission', 'compress', dat, '', stack=True)
x.addDep('pod', 'compress', dat, '', stack=True)
x.addDep('pod', 'mission', dat, '', stack=True)
x.addDep('flow_limit', 'pod', dat, '', stack=True)
x.addDep('tube_wall_temp', 'compress', dat, '', stack=True)

#reverse couplings
x.addDep('compress', 'flow_limit', dat, '', stack=True)
x.addDep('compress', 'tube_wall_temp', dat, '', stack=True)
x.addDep('compress', 'pod', dat, '', stack=True)

#assembly inputs
x.addDep('compress', 'assembly inputs', dat, '', stack=True)
x.addDep('mission', 'assembly inputs', dat, '', stack=True)
x.addDep('flow_limit', 'assembly inputs', dat, '', stack=True)
x.addDep('tube_wall_temp', 'assembly inputs', dat, '', stack=True)
Ejemplo n.º 18
0
x.addComp('solver', 'MDA', 'Solver')

x.addComp('rotor', opt, 'Rotor')
x.addComp('hub', opt, 'Hub')
x.addComp('nacelle', opt, 'Nacelle')
x.addComp('tower', opt, 'Tower')
x.addComp('deflection', opt, 'Tower Strike')
x.addComp('aep_a', opt, 'Annual Energy Prod.')
x.addComp('opex_a', opt, 'Op. Expenses')
x.addComp('tcc_a', opt, 'Turb. Capital Cost')
x.addComp('bos_a', opt, 'Balance of Station')
x.addComp('fin_a', opt, 'Financial')


x.addDep('rotor', 'solver', dat, "$L_{blade}, precurve$")
x.addDep('solver', 'rotor', dat, "$\Delta_{L}, \Delta_{precurve}$")

x.addDep('tcc_a', 'rotor', dat, '$m_{blade}$, $P_{rated}$')
x.addDep('tcc_a', 'hub', dat, '$m_{hub}$')
x.addDep('tcc_a', 'nacelle', dat, '$m_{nacelle}$')
x.addDep('tcc_a', 'tower', dat, '$m_{tower}$')

x.addDep('bos_a', 'rotor', dat, '\TwolineComponent{2.5cm}{$m_{blade}$, $P_{rated}$}{$d_{rotor}$}')
x.addDep('bos_a', 'tcc_a', dat, "$\$_{tcc}$")

x.addDep('opex_a', 'rotor', dat, '$P_{rated}$')
x.addDep('opex_a', 'aep_a', dat, '$AEP_{net}$')

x.addDep('aep_a', 'rotor', dat, '$AEP$')