Beispiel #1
0
 def update_pressure_cap(self, cell_container):
     for k in range(1, Layer.N_z - 1):
         for i in range(1, Layer.N_x - 1):
             for j in range(1, Layer.N_y - 1):
                 cell = cell_container.get_cell(k, i, j)
                 s_water = cell.get_cell_state_n_plus().get_s_water()
                 p_cap = Layer.count_pressure_cap(s_water)
                 cell.get_cell_state_n_plus().set_pressure_cap(p_cap)
    def initialize_cell(cell):
        for state in cell.get_cell_states():
            state.set_s_water(Layer.s_water_init)
            state.set_s_oil(1.0 - Layer.s_water_init)
            if cell.is_n_plus_state(state):
                state.set_pressure_oil(Layer.pressure_oil_init + Layer.delta_0)
            else:
                state.set_pressure_oil(Layer.pressure_oil_init)
            state.set_pressure_cap(Layer.count_pressure_cap(state.get_s_water()))
            state.set_pressure_water(state.get_pressure_oil() - state.get_pressure_cap())  # Отнимается от каждого элемента матрицы

            for i in range(Layer.components_count):
                component = Layer.components[i]
                component_saturation = state.get_components_saturation()[i]
                component_pressure = state.get_components_pressure()[i]
                state.set_k_r(component.count_k_r(component_saturation), i)
                state.set_ro(component.count_ro(component_pressure), i)