Пример #1
0
    def setup(self):
        n_in = self.options['n_in']
        n_out = self.options['n_out']
        nn = self.options['num_nodes']


        self.add_subsystem(name = 'size',
                          subsys = HeatPipeSizeGroup(num_nodes=nn),
                          promotes_inputs=['L_flux', 'L_adiabatic', 't_w', 't_wk', 'D_od', 'D_v',
                                           't_w', 'D_v', 'L_flux'],
                          promotes_outputs=['r_i', 'A_flux', 'A_inter']) #'A_w', 'A_wk', 'L_eff' now come from the bridge/thermal link


        # Calculate Fluid Properties
        self.add_subsystem(name = 'fluids',
                           subsys = FluidPropertiesComp(num_nodes=nn),
                           promotes_inputs=['Q_hp', 'A_cond', 'h_c', 'T_coolant'],
                           promotes_outputs=['R_g', 'P_v', 'T_hp', 'rho_v', 'mu_v', 'h_fg','v_fg','k_l'])

        # Calculate Resistances
        self.add_subsystem(name='radial',
                           subsys=RadialThermalResistance(num_nodes=nn),
                           promotes_inputs=['T_hp','v_fg','D_od','R_g','P_v','k_wk','A_inter','k_w','L_flux','r_i','D_v','h_fg','alpha'],
                           promotes_outputs=['R_w','R_wk','R_inter'])


        # Define Resistors
        self.add_subsystem('Rex', Resistor())
        self.add_subsystem('Rw', Resistor())#, promotes_inputs=[('T_in', 'T_hot')]) # evaporator wall
        self.add_subsystem('Rwk', Resistor()) # evaporator wick
        self.add_subsystem('Rinter', Resistor())

        self.add_subsystem('n1', Node(n_in=1+n_in, n_out=1+n_out))  # 1, 2 out
        self.add_subsystem('n2', Node(n_in=1+n_in, n_out=1+n_out))  # 1, 2 out
        self.add_subsystem('n3', Node(n_in=1, n_out=1))  # 1
        self.add_subsystem('n4', Node(n_in=1+n_in, n_out=1+n_out))  # 1

        # node 1 (6 connections, 1 in, 2 out)
        self.connect('n1.T', ['Rex.T_out','Rw.T_in'])
        self.connect('Rex.q','n1.q_in:0')
        self.connect('Rw.q','n1.q_out:0')

        # node 2 (6 connections, 1 in, 2 out)
        self.connect('n2.T', ['Rw.T_out', 'Rwk.T_in'])
        self.connect('Rw.q', 'n2.q_in:0')
        self.connect('Rwk.q', 'n2.q_out:0')

        # node 3 (4 connections)
        self.connect('n3.T', ['Rwk.T_out','Rinter.T_in'])
        self.connect('Rwk.q', 'n3.q_in:0')
        self.connect('Rinter.q', 'n3.q_out:0')

        # node 4 (4 connections)
        self.connect('n4.T', ['Rinter.T_out']) 
        self.connect('Rinter.q', 'n4.q_in:0')

        # connect resistances
        self.connect('R_w','Rw.R')
        self.connect('R_wk','Rwk.R')
        self.connect('R_inter','Rinter.R')
Пример #2
0
    def setUp(self):
        p1 = self.prob = Problem(model=Group())
        p1.model.add_subsystem('cond_thermal',
                               subsys=RadialThermalResistance(num_nodes=40,
                                                              geom='round'),
                               promotes=['*'])

        p1.setup(force_alloc_complex=True)
        p1.run_model()
Пример #3
0
    def setup(self):
        n_in = self.options['n_in']
        n_out = self.options['n_out']
        nn = self.options['num_nodes']
        geom = self.options['geom']

        # Calculate Fluid Properties
        self.add_subsystem(name='fluids',
                           subsys=FluidPropertiesComp(num_nodes=nn),
                           promotes_inputs=['T_hp'],
                           promotes_outputs=[
                               'R_g', 'P_v', 'rho_v', 'mu_v', 'h_fg', 'v_fg',
                               'k_l'
                           ])

        # Calculate Resistances
        if geom == 'round':
            inpts = [
                'T_hp', 'v_fg', 'R_g', 'P_v', 'LW:A_inter', 'k_w', 'k_l',
                'epsilon', 'h_fg', 'alpha', 'LW:L_flux', 'XS:D_od', 'XS:r_i',
                'XS:D_v'
            ]
        elif geom == 'flat':
            inpts = [
                'T_hp', 'v_fg', 'R_g', 'P_v', 'LW:A_inter', 'k_w', 'k_l',
                'epsilon', 'h_fg', 'alpha', 'XS:t_w', 'XS:t_wk'
            ]

        self.add_subsystem(name='radial',
                           subsys=RadialThermalResistance(num_nodes=nn,
                                                          geom=geom),
                           promotes_inputs=inpts,
                           promotes_outputs=['R_w', 'R_wk', 'R_inter'])

        self.set_input_defaults('T_hp', 300 * np.ones(nn), units='K')

        # Define Resistors
        self.add_subsystem('Rex', Resistor(num_nodes=nn))
        self.add_subsystem(
            'Rw', Resistor(num_nodes=nn)
        )  #, promotes_inputs=[('T_in', 'T_hot')]) # evaporator wall
        self.add_subsystem('Rwk', Resistor(num_nodes=nn))  # evaporator wick
        self.add_subsystem('Rinter', Resistor(num_nodes=nn))

        self.add_subsystem('n1',
                           Node(n_in=1 + n_in, n_out=1 + n_out,
                                num_nodes=nn))  # 1, 2 out
        self.add_subsystem('n2',
                           Node(n_in=1 + n_in, n_out=1 + n_out,
                                num_nodes=nn))  # 1, 2 out
        self.add_subsystem('n3', Node(n_in=1, n_out=1, num_nodes=nn))  # 1
        self.add_subsystem('n4',
                           Node(n_in=1 + n_in, n_out=1 + n_out,
                                num_nodes=nn))  # 1

        # node 1 (6 connections, 1 in, 2 out)
        self.connect('n1.T', ['Rex.T_out', 'Rw.T_in'])
        self.connect('Rex.q', 'n1.q_in:0')
        self.connect('Rw.q', 'n1.q_out:0')

        # node 2 (6 connections, 1 in, 2 out)
        self.connect('n2.T', ['Rw.T_out', 'Rwk.T_in'])
        self.connect('Rw.q', 'n2.q_in:0')
        self.connect('Rwk.q', 'n2.q_out:0')

        # node 3 (4 connections)
        self.connect('n3.T', ['Rwk.T_out', 'Rinter.T_in'])
        self.connect('Rwk.q', 'n3.q_in:0')
        self.connect('Rinter.q', 'n3.q_out:0')

        # node 4 (4 connections)
        self.connect('n4.T', ['Rinter.T_out'])
        self.connect('Rinter.q', 'n4.q_in:0')

        # connect resistances
        self.connect('R_w', 'Rw.R')
        self.connect('R_wk', 'Rwk.R')
        self.connect('R_inter', 'Rinter.R')