diff options
author | eug-vs <eugene@eug-vs.xyz> | 2022-05-23 21:00:34 +0400 |
---|---|---|
committer | eug-vs <eugene@eug-vs.xyz> | 2022-05-23 21:00:34 +0400 |
commit | d0a6bf4ed96a9c387f27dee6b19bee3e1f196c2c (patch) | |
tree | 409cac90c30980ea656630c4dc08a67829e02146 | |
parent | 936493a052403e159d146650f3e3c54521231368 (diff) | |
download | CFD-SIMPLE-d0a6bf4ed96a9c387f27dee6b19bee3e1f196c2c.tar.gz |
tmp: approved flow
-rw-r--r-- | src/simple.py | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/simple.py b/src/simple.py index 789c81a..91ed1a4 100644 --- a/src/simple.py +++ b/src/simple.py @@ -41,6 +41,10 @@ class SIMPLE: self.u_star[i][0] = 1 self.v_star[i][0] = 0 + def apply_outflow_boundary(self): + for i in range(0, self.shape[0]): + self.u_star[i][-1] = self.u_star[i][-2]; + def assert_positive(self, value): '''Assert that the value is nearly positive''' assert value > -0.1, f'WARNING: Value must be positive: {value}' @@ -50,8 +54,8 @@ class SIMPLE: '''Iterator over all grid points, excluding the obstacle''' for i in range(1, self.shape[0] - 1): for j in range(1, self.shape[1] - 1): - if i > self.bfs_node_size[0] or j > self.bfs_node_size[1]: - yield (i, j) + # if i > self.bfs_node_size[0] or j > self.bfs_node_size[1]: + yield (i, j) def solve_momentum_equations(self): # Momentum along X direction @@ -104,8 +108,9 @@ class SIMPLE: def apply_sides_boundary(self): for j in range(self.shape[1]): - self.v_star[1][j] = 0 + self.v_star[0][j] = 0 self.v_star[-2][j] = 0 + # WORKSNICE: self.v_star[-3][j] = 0 def apply_bfs_boundary(self): '''Apply Backwards Facing Step boundary conditions''' @@ -145,15 +150,25 @@ class SIMPLE: self.v[i][j] = self.v_star[i][j] + self.d_n[i][j] * (self.p_prime[i][j] - self.p_prime[i + 1][j]) def iterate(self): + self.apply_inflow_boundary() self.solve_momentum_equations() - self.apply_inflow_boundary() self.apply_sides_boundary() - self.apply_bfs_boundary() + # self.apply_bfs_boundary() self.correct_pressure() self.correct_velocities() + # Sides (magick wtf?) + for j in range(self.shape[1]): + self.v[1][j] = 0 + self.v[-2][j] = 0 + + for i in range(self.shape[0]): + self.v[i][0] = 0 + self.v[i][1] = 0 + + def avg_error(self): return np.absolute(self.b).sum() |