Пример #1
0
 def __init__(self, receiver):
     self.root = Tk()
     self.m = Tube(self.root)
     self.m.receiver = receiver
     self.root.title("Play Youtube URL")
     self.root.protocol("WM_DELETE_WINDOW", self.on_exit)
     self.root.mainloop()
Пример #2
0
def test_tube_dsdx_2():
    xs = [0, 2, 4, 6]
    ds = [1, 2, 4, 2]
    t = Tube(xs, ds)
    for i in range(33):
        x1 = 0 + random.random() * 2
        x2 = 0 + random.random() * 2
        x1, x2 = min(x1, x2), max(x1, x2)
        assert t.get_dsdx(np.array([x1, x2])) == approx([
            (pi * 2**2 / 4 - pi * 1**2 / 4) / 2
        ])
    for i in range(33):
        x1 = 2 + random.random() * 2
        x2 = 2 + random.random() * 2
        x1, x2 = min(x1, x2), max(x1, x2)
        assert t.get_dsdx(np.array([x1, x2])) == approx([
            (pi * 4**2 / 4 - pi * 2**2 / 4) / 2
        ])
    for i in range(33):
        x1 = 4 + random.random() * 2
        x2 = 4 + random.random() * 2
        x1, x2 = min(x1, x2), max(x1, x2)
        assert t.get_dsdx(np.array([x1, x2])) == approx([
            (pi * 2**2 / 4 - pi * 4**2 / 4) / 2
        ])
Пример #3
0
def test_tube_dsdx_1():
    xs = [1, 2, 4]
    ds = [1, 1, 1]
    s = pi / 4
    t = Tube(xs, ds)
    for i in range(33):
        x1 = -10 + random.random() * 30
        x2 = -10 + random.random() * 30
        x1, x2 = min(x1, x2), max(x1, x2)
        assert t.get_dsdx(np.array([x1, x2])) == approx([0.0])
Пример #4
0
def test_tube_ws():
    xs = [1, 2, 4]
    ds = [1, 1, 1]
    s = pi / 4
    t = Tube(xs, ds)
    for i in range(33):
        x1 = -10 + random.random() * 30
        x2 = -10 + random.random() * 30
        x1, x2 = min(x1, x2), max(x1, x2)
        assert t.get_W_between(x1, x2) == approx(s * (x2 - x1))
Пример #5
0
def test_tube_get_x2x1():
    xs = [0, 2, 4, 6]
    ds = [1, 2, 4, 2]
    tube = Tube(xs, ds)
    for i in range(1000):
        x1 = np.random.uniform(0, 6)
        w = np.random.uniform(1, 10)
        x2 = tube.get_x2(x1, w)
        xx1 = tube.get_x1(x2, w)
        assert x1 == approx(xx1)
 def _pour(self, source_tube: Tube, destination_tube: Tube, can_pour=False):
     if can_pour or self.canPour(source_tube, destination_tube):
         pour_liquid: Liquid = source_tube.removeLiquid()
         destination_tube.addLiquid(pour_liquid.getColor())
         try:
             self._pour(source_tube, destination_tube)
         except (ValueError):
             pass
     else:
         raise ValueError("Cannot pour tube: {} into tube:{}".format(
             source_tube.getName(), destination_tube.getName()))
Пример #7
0
def test_tube_s():
    d = sqrt(4 / pi)  # s = 1
    ds = np.array([d, d, 0.5 * d])
    xs = [-1, 2, 4]
    t = Tube(xs, ds)
    assert t.get_S(np.array([-10, -1, 2],
                            dtype=np.double)) == approx([1, 1, 1])
    assert t.get_S(np.array([2, 4, 55], dtype=np.double)) == approx(
        [1, pi * (0.5 * d)**2 / 4, pi * (0.5 * d)**2 / 4])
    assert t.get_S(np.array([3], dtype=np.double)) == approx(
        [pi * (0.5 * d)**2 / 4 * 0.5 + 0.5])
Пример #8
0
class tubeui():
    def __init__(self, receiver):
        self.root = Tk()
        self.m = Tube(self.root)
        self.m.receiver = receiver
        self.root.title("Play Youtube URL")
        self.root.protocol("WM_DELETE_WINDOW", self.on_exit)
        self.root.mainloop()

    def on_exit(self):
        self.m.on_closing()
        self.root.destroy()
Пример #9
0
def test_tube_d():
    ds = np.array([1, 1, 0.5])
    xs = [1, 2, 4]
    t = Tube(xs, ds)
    assert t.get_ds() == approx(ds)
    assert t.get_xs() == approx(xs)
    assert t.get_d(3) == approx(0.75)
    assert t.get_d(33) == approx(0.5)
Пример #10
0
def all_transformers():
    return [
        Email(),
        SMS(),
        FBMsg(),
        Phone(),
        BankWire(),
        Paypal(),
        DebitCard(),
        ContactlessCard(),
        Tube(),
        FBStatus(),
        Tweet(),
    ]
Пример #11
0
 def create_items(self):
     """get items symbol instead of its character in the text file
     (given in each class),
     for each item in the "items" tupple (given in Maze constructor),
     at the position (pos) given in get_random_empty_tile method
     pos= [line, column]"""
     for item in self.items:
         pos = self.get_random_empty_tile()
         if item == "N":
             self.data[pos[0]][pos[1]] = Needle()
         elif item == "E":
             self.data[pos[0]][pos[1]] = Ether()
         elif item == "T":
             self.data[pos[0]][pos[1]] = Tube()
Пример #12
0
def test_ndaisies(n_daisies):
    P = 1
    gamma = 0.3
    a_vec = np.array([1 / (n_daisies + 1) for i in range(n_daisies)])
    #A_vec = np.random.uniform(0, 0.5, size=n_daisies)
    A_vec = np.linspace(0.05, 0.75, n_daisies)
    T_vec = np.random.normal(295., 10., size=n_daisies)
    #T_vec = 295 * np.ones(n_daisies)
    #tube = Tube(P=1, gamma=0.3,
    #a_vec=np.array([1/(n_daisies + 1) for i in range(n_daisies)]),
    #A_vec=np.random.uniform(size=n_daisies),
    #T_vec=np.random.normal(295., 10., size=n_daisies))
    #tube.setupGrid(40, 40, 80)
    #tube._updategrid()

    #phis = [0, 1.57, 3.14, 4.71]
    phis = np.linspace(-0.39, 0.39, 9)
    phis = [0.]

    for phi in phis:
        tube = Tube(P=P,
                    gamma=gamma,
                    a_vec=a_vec,
                    A_vec=A_vec,
                    phi=phi,
                    T_vec=T_vec)
        tube.setupGrid(0, 0, 80, oceans=True, inputfile='test.world')

        #tube.plot(r'Daisyworld init', ptype='albedo')

        for i in range(100):
            print(f"{i}")
            tube._updategrid()

    tube.plot(f"Daisyworld w/ {n_daisies} daisies")
    tube.plot(f"Daisyworld w/ {n_daisies} daisies", ptype='albedo')
def create_tubes(n):

    tubes = []

    row_width = TUBE_WIDTH * (n / 2) + TUBE_WIDTH * ((n / 2) - 1)
    row_space = TUBE_WIDTH  # space between each tube
    col_space = TUBE_WIDTH * 2  # space between each row

    sx = 0 - (row_width // 2)
    sxv = sx
    sy = 0 + col_space // 2 + TUBE_HEIGHT

    for i in range(n):
        if i == (n // 2):
            sy -= TUBE_HEIGHT + col_space
            sxv = sx

        tubes.append(
            Tube(str(i + 1), sxv, sy, TUBE_WIDTH, TUBE_HEIGHT,
                 LIQUID_UNIT_VOLUME, LIQUID_PER_TUBE))
        sxv += TUBE_WIDTH + row_space

    return tubes
Пример #14
0
def read_tube_quotes():
    with open('../data/competition_data/temp/tube.csv', 'r') as tube_file:
        tube_reader = csv.DictReader(tube_file)
        tubes = {}
        for row in tube_reader:
            tubes[row['tube_assembly_id']] = Tube(row['tube_assembly_id'], row['material_id'], float(row['diameter']),
                                                  float(row['wall']), float(row['length']),
                                                  float(row['num_bends']), float(row['bend_radius']))

    print 'Number of tubes ', len(tubes)

    with open('../data/competition_data/temp/train_set.csv', 'r') as train_file:
        train_reader = csv.DictReader(train_file)

        tube_quotes = []
        for row in train_reader:
            tube = tubes[row['tube_assembly_id']]
            tube_quotes.append(
                TubeQuote(tube, row['supplier'], row['quote_date'], float(row['annual_usage']), float(row['cost']),
                          float(row['quantity']), is_bracket_pricing(row)))

        print 'Number of tube quotes ', len(tube_quotes)
        return tube_quotes
 def canPour(_, source_tube: Tube, destination_tube: Tube):
     pouring_liquid: Liquid = source_tube.getTopLiquid()
     not_null = pouring_liquid is not None
     pourable = not_null and destination_tube.canAddLiquid(pouring_liquid)
     return pourable
Пример #16
0
def newtube(filename):
    tube = Tube(filename)
    return tube
Пример #17
0
T_vec = np.random.normal(295., 10., size=n_daisies).sort()
#tube = Tube(P=1, gamma=0.3,
#a_vec=np.array([1/(n_daisies + 1) for i in range(n_daisies)]),
#A_vec=np.random.uniform(size=n_daisies),
#T_vec=np.random.normal(295., 10., size=n_daisies))
#tube.setupGrid(40, 40, 80)
#tube._updategrid()

#phis = [0, 1.57, 3.14, 4.71]
phis = np.linspace(-0.39, 0.39, 9)
phis = [0.]

for phi in phis:
    tube = Tube(P=P,
                gamma=gamma,
                a_vec=a_vec,
                A_vec=A_vec,
                phi=phi,
                T_vec=T_vec)
    tube.setupGrid(0, 0, 80, oceans=True, inputfile='harrison.world')

    tube.plot(r'Daisyworld init', savefig="temps_init.png")
    tube.plot(r'Daisyworld init albedos',
              ptype='albedo',
              savefig='albedos_init.png')
    #tube.plot(r'Daisyworld init', ptype='albedo')

    for i in range(100):
        print(f"{i}", end="\r")
        tube._updategrid()
        tube.plot(f'Daisyworld at {i} iterations',
                  savefig=f'figures/frame_{i:03d}.png',
Пример #18
0
def test_tube_exists():
    t = Tube([1, 2, 3], [1, 0, 0])
    assert t is not None
Пример #19
0
    def __init__(self):
        super(VoiceGame2, self).__init__(255, 255, 255, 255, WIDTH, HEIGHT)
        pygame.mixer.init()
        self.cloud = cocos.sprite.Sprite('fla.png')
        self.cloud.scale_x = 1.5
        self.cloud.scale_y = 1.83
        self.cloud.position = 300, 240
        self.add(self.cloud)
        self.gameover = None
        self.score = 0  #count score
        self.txt_score = cocos.text.Label(u'Score:0',
                                          font_name=FONTS,
                                          font_size=16,
                                          color=BLACK)
        self.txt_score.position = 510, 240
        self.add(self.txt_score, 99999)

        self.top = '', 0
        self.top_notice = cocos.text.Label(u'',
                                           font_name=FONTS,
                                           font_size=18,
                                           color=BLACK)
        self.top_notice.position = 400, 410
        self.add(self.top_notice, 99999)

        self.name = ''

        # init voice
        self.NUM_SAMPLES = 2048  # pyAudio cache size
        self.LEVEL = 1500  # sound threshold
        '''self.voicebar = Sprite('black.png', color=(0, 0, 255))
        self.voicebar.position = 20, 450
        self.voicebar.scale_y = 0.1
        self.voicebar.image_anchor = 0, 0
        self.add(self.voicebar)'''

        self.ppx = Flappy(self)
        self.add(self.ppx)
        self.floor2 = cocos.cocosnode.CocosNode()
        self.floor = cocos.cocosnode.CocosNode()
        self.add(self.floor)
        self.add(self.floor2)
        self.last_block = 0, 100
        for i in range(5):
            b = Tube(self)
            u = upTube(self)
            self.floor.add(b)
            self.floor.add(u)
            self.pitch_pic(u)
            pos = b.x + b.width, b.height

        # start inputing sound
        pa = PyAudio()
        SAMPLING_RATE = int(
            pa.get_device_info_by_index(0)['defaultSampleRate'])
        self.stream = pa.open(format=paInt16,
                              channels=1,
                              rate=SAMPLING_RATE,
                              input=True,
                              frames_per_buffer=self.NUM_SAMPLES)
        self.stream.stop_stream()

        pygame.music.load('intro.wav'.encode())
        pygame.music.play(1)

        self.schedule(self.update)
Пример #20
0
import json
import os
import sys
from math import *
wd = os.path.abspath(__file__)  # os.path.dirname(os.path.dirname(os.getcwd()))
wd = os.path.dirname(os.path.dirname(wd))
sys.path.append(wd + "\\src\\include\\godunov")
sys.path.append(wd + "\\src")
import numpy as np

from gaslayer import Powder, PowderOvLayer, GridStrecher, GasFluxCalculator
from tube import Tube

d = 23 * 1e-3
barrel = Tube([0, 1], [d, d])

with open('gpowders.json') as f:
    all_powders = json.load(f)

print(all_powders.keys())
Пример #21
0
def _plot3():
    import matplotlib.pyplot as plt
    # из статьи ОДНОМЕРНЫЕ ЗАДАЧИ ГАЗОВОЙ ДИНАМИКИ И ИХ РЕШЕНИЕ  ПРИ ПОМОЩИ РАЗНОСТНЫХ СХЕМ ВЫСОКОЙ  РАЗРЕШАЮЩЕЙ СПОСОБНОСТИ
    #           LEFT          RIGHT
    #      ro       u       p       ro      u       p       t
    v = [
        (1, 0, 1, 0.125, 0, 0.1, 0.15),
        #  ( 0.445,   0.698,  3.528,  0.5,    0,      0.571,  0.05  ),
        #  ( 1,       1,      1,      0.5,    0,      0.571,  0.05  )
    ]
    for ro_1, u_1, p_1, ro_2, u_2, p_2, t in v:
        d = {
            'p_1': p_1,  # давление слева
            'ro_1': ro_1,  # плотность слева   
            'u_1': u_1,  # скорость слева      
            'p_2': p_2,  # давление справа     
            'ro_2': ro_2,  # плотность справа    
            'u_2': u_2,  # скорость справа        
            'p_0': 0,  # параметр в ур-ии состояния        
            'gamma': 1.4,  # параметр в ур-ии состояния          
            'c_0': 0,  # параметр в ур-ии состояния     
            'eps_F': 1e-6,  # точность определения решения           
            'n_iter_max':
            100,  # максимальное количество итераций при определении решения              
            'x0': 0.5,  # положение разрыва в момент t=0        
            'ts': [
                t
            ],  # времена, в которых нужно построить графики распределения параметров         
            'n':
            10000  # кол-во точек, в которых ищутся параметры волны разрежения         
        }
    # plot_distrs(**d)
    # print(get_distrs_to_time(d['ts'][0], **d))

    x1 = 0
    x2 = 1

    def init_foo(x, *args):
        if x <= 0.5:
            return d['ro_1'], d['p_1'], d['u_1']
        return d['ro_2'], d['p_2'], d['u_2']

    gas_eos = GasEOS(gamma=1.4, kind=1)
    grid_strecher = GridStrecher(strech_type=2,
                                 st2_window_part=0.05,
                                 st2_adapt_prop=0.2,
                                 D_mnj=1)
    gas_flux_calculator = GasFluxCalculator(x_order=2, alpha_1=3, alpha_2=1)
    tube = Tube([0, 1], [0.1, 0.1])
    n_cells = 300
    layer = GasLayer(n_cells,
                     tube=tube,
                     gasEOS=gas_eos,
                     flux_calculator=gas_flux_calculator,
                     grid_strecher=grid_strecher,
                     n_qs=3)
    layer.xs_borders[:] = np.linspace(x1, x2, n_cells + 1)
    layer.init_ropue_fromfoo(init_foo)

    # d = layer.to_dict()

    # grid_strecher.smooth_arr(layer.xs_cells, layer.es, layer.es, grid_strecher.st2_window_part)
    # grid_strecher.adaptine_borders(layer.xs_borders, layer.es, layer.xs_borders)
    # layer.init_ropue_fromfoo(init_foo)
    # grid_strecher.smooth_arr(layer.xs_cells, layer.es, layer.es, grid_strecher.st2_window_part)
    # grid_strecher.adaptine_borders(layer.xs_borders, layer.es, layer.xs_borders)
    # layer.init_ropue_fromfoo(init_foo)
    def plot_layer(lr, plt_ideal=True):
        lr_d = layer.to_dict()
        plt.scatter(lr_d['xs_cells'], lr_d['ros'])
        plt.scatter(lr_d['xs_cells'], lr_d['ps'])
        plt.scatter(lr_d['xs_cells'], lr_d['us'])
        plt.scatter(lr_d['xs_cells'], lr_d['es'])
        # plt.scatter(lr_d['xs_borders'], lr_d['bettas'])
        # plt.scatter(lr_d['xs_borders'], lr_d['fluxes'][0])
        if plt_ideal:
            dd = get_distrs_to_time(layer.time, **d)
            plt.plot(dd['xs'], dd['ros'], label=r'$\rho$')
            plt.plot(dd['xs'], dd['ps'], label=r'$p$')
            plt.plot(dd['xs'], dd['us'], label=r'$u$')
            plt.plot(dd['xs'], dd['es'], label=r'$e$')
        plt.grid(True)
        plt.legend()
        plt.show()

    layer.init_taus_acustic()

    t0 = time.time()
    while layer.time < d['ts'][0]:
        # d['ts'][0] = 0.001
        # layer.time = 0.01
        # break
        layer.fill_rr()
        layer1 = layer.copy()
        tau = layer.get_tau_min() * 0.3
        suc = layer.grid_strecher.sync_layers(layer, layer1, tau, 0, 0)

        # plt.plot(np.array(layer.xs_borders), label='layer.xs_borders')
        # plt.plot(np.array(layer1.xs_borders), label='layer1.xs_borders')
        # plt.plot(np.array(layer.Vs_borders), label='layer.Vs_borders')
        # plt.plot(np.array(layer1.Vs_borders), label='layer1.Vs_borders')
        # plt.grid(True)
        # plt.legend()
        # plt.show()

        layer.fill_taus()

        layer1 = layer.step_simple(tau, 0, 0)
        if layer == layer1:
            break
        layer2 = layer.corrector_bogdanov(layer1, 0, 0)
        if layer == layer2:
            break
        layer = layer2
        # plot_layer(layer, False)
        # print(np.max(np.array(layer.bettas)))
    print(time.time() - t0)

    #(3.55189 + 3.40513 + 3.33072 + 3.44629 + 3.717145 + 3.93337 + 3.94355 + 3.706031+3.54699+3.4006)
    # plot_layer(layer)
    print(layer.time)
    # print(layer.to_dict())
    plot_layer(layer)
Пример #22
0
def tube(request):
    return Tube([1, 2, 3], [0.1, 0.2, 0.15])