Obtaining simultaneous equations from a dicretized Poisson's equation.
Clash Royale CLAN TAG#URR8PPP
up vote
0
down vote
favorite
I'm trying to simulate fluids using Moving particle semi-implicit method(MPS). Basically, for incompressible fluids, at every time step, a pressure term is calculated for each fluid particle to correct its velocity and position, to maintain the particle number density (PND).
The pressure term can obtained by solving this Poisson's equation:
$$nabla ^2lt Pgt_i = -fracrhodt cdot fraclt n^*gt_i - n^0n^0 quad (1) $$
After discretizing the left side, we get:
$$frac2dlambda n^0 sum_j not=i (P_j - P_i)W(|mathbf r_j - mathbf r_i|) = -fracrhodt cdot fraclt n^*gt_i - n^0n^0 quad (2)$$
where $P_i$ is the pressure at the particle $i$ and $P_j$ is pressure at neighboring particle $j$. $n^0$ is the default PND and $<n^*>_i$ is the temporary PND at time step $k$. $mathbf r_i$ is the position of particle i. Other tems are just constants. $W(|mathbf r_j - mathbf r_i|)$ is a weight kernel which looks like this:
$$W(r) = frac r_e r - 1, quad textif 0 < r < r_e \ = 0, quad textotherwise$$ r is distance between two particles and $r_e$ is the interaction radius. And the temporary PND is obtained by summing up weights to neighboring particles.
$$<n^*>_i = sum_jnot=i W(|mathbf r_j - mathbf r_i|)$$
The problem I have is that in every academic papper about MPS I've studied, says that a system of equations can be obtained from the equation (2), and the matrix representing these linear equations is sparse and symmetric. I have tried for weeks figuring out how to express the equation (2) as $Ax=b$, but without any success. Maybe I have missed something or maybe I'm just genuinly stupid. Any help is appreciated. Thank you so much.
discrete-mathematics systems-of-equations mathematical-physics fluid-dynamics poissons-equation
add a comment |Â
up vote
0
down vote
favorite
I'm trying to simulate fluids using Moving particle semi-implicit method(MPS). Basically, for incompressible fluids, at every time step, a pressure term is calculated for each fluid particle to correct its velocity and position, to maintain the particle number density (PND).
The pressure term can obtained by solving this Poisson's equation:
$$nabla ^2lt Pgt_i = -fracrhodt cdot fraclt n^*gt_i - n^0n^0 quad (1) $$
After discretizing the left side, we get:
$$frac2dlambda n^0 sum_j not=i (P_j - P_i)W(|mathbf r_j - mathbf r_i|) = -fracrhodt cdot fraclt n^*gt_i - n^0n^0 quad (2)$$
where $P_i$ is the pressure at the particle $i$ and $P_j$ is pressure at neighboring particle $j$. $n^0$ is the default PND and $<n^*>_i$ is the temporary PND at time step $k$. $mathbf r_i$ is the position of particle i. Other tems are just constants. $W(|mathbf r_j - mathbf r_i|)$ is a weight kernel which looks like this:
$$W(r) = frac r_e r - 1, quad textif 0 < r < r_e \ = 0, quad textotherwise$$ r is distance between two particles and $r_e$ is the interaction radius. And the temporary PND is obtained by summing up weights to neighboring particles.
$$<n^*>_i = sum_jnot=i W(|mathbf r_j - mathbf r_i|)$$
The problem I have is that in every academic papper about MPS I've studied, says that a system of equations can be obtained from the equation (2), and the matrix representing these linear equations is sparse and symmetric. I have tried for weeks figuring out how to express the equation (2) as $Ax=b$, but without any success. Maybe I have missed something or maybe I'm just genuinly stupid. Any help is appreciated. Thank you so much.
discrete-mathematics systems-of-equations mathematical-physics fluid-dynamics poissons-equation
add a comment |Â
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm trying to simulate fluids using Moving particle semi-implicit method(MPS). Basically, for incompressible fluids, at every time step, a pressure term is calculated for each fluid particle to correct its velocity and position, to maintain the particle number density (PND).
The pressure term can obtained by solving this Poisson's equation:
$$nabla ^2lt Pgt_i = -fracrhodt cdot fraclt n^*gt_i - n^0n^0 quad (1) $$
After discretizing the left side, we get:
$$frac2dlambda n^0 sum_j not=i (P_j - P_i)W(|mathbf r_j - mathbf r_i|) = -fracrhodt cdot fraclt n^*gt_i - n^0n^0 quad (2)$$
where $P_i$ is the pressure at the particle $i$ and $P_j$ is pressure at neighboring particle $j$. $n^0$ is the default PND and $<n^*>_i$ is the temporary PND at time step $k$. $mathbf r_i$ is the position of particle i. Other tems are just constants. $W(|mathbf r_j - mathbf r_i|)$ is a weight kernel which looks like this:
$$W(r) = frac r_e r - 1, quad textif 0 < r < r_e \ = 0, quad textotherwise$$ r is distance between two particles and $r_e$ is the interaction radius. And the temporary PND is obtained by summing up weights to neighboring particles.
$$<n^*>_i = sum_jnot=i W(|mathbf r_j - mathbf r_i|)$$
The problem I have is that in every academic papper about MPS I've studied, says that a system of equations can be obtained from the equation (2), and the matrix representing these linear equations is sparse and symmetric. I have tried for weeks figuring out how to express the equation (2) as $Ax=b$, but without any success. Maybe I have missed something or maybe I'm just genuinly stupid. Any help is appreciated. Thank you so much.
discrete-mathematics systems-of-equations mathematical-physics fluid-dynamics poissons-equation
I'm trying to simulate fluids using Moving particle semi-implicit method(MPS). Basically, for incompressible fluids, at every time step, a pressure term is calculated for each fluid particle to correct its velocity and position, to maintain the particle number density (PND).
The pressure term can obtained by solving this Poisson's equation:
$$nabla ^2lt Pgt_i = -fracrhodt cdot fraclt n^*gt_i - n^0n^0 quad (1) $$
After discretizing the left side, we get:
$$frac2dlambda n^0 sum_j not=i (P_j - P_i)W(|mathbf r_j - mathbf r_i|) = -fracrhodt cdot fraclt n^*gt_i - n^0n^0 quad (2)$$
where $P_i$ is the pressure at the particle $i$ and $P_j$ is pressure at neighboring particle $j$. $n^0$ is the default PND and $<n^*>_i$ is the temporary PND at time step $k$. $mathbf r_i$ is the position of particle i. Other tems are just constants. $W(|mathbf r_j - mathbf r_i|)$ is a weight kernel which looks like this:
$$W(r) = frac r_e r - 1, quad textif 0 < r < r_e \ = 0, quad textotherwise$$ r is distance between two particles and $r_e$ is the interaction radius. And the temporary PND is obtained by summing up weights to neighboring particles.
$$<n^*>_i = sum_jnot=i W(|mathbf r_j - mathbf r_i|)$$
The problem I have is that in every academic papper about MPS I've studied, says that a system of equations can be obtained from the equation (2), and the matrix representing these linear equations is sparse and symmetric. I have tried for weeks figuring out how to express the equation (2) as $Ax=b$, but without any success. Maybe I have missed something or maybe I'm just genuinly stupid. Any help is appreciated. Thank you so much.
discrete-mathematics systems-of-equations mathematical-physics fluid-dynamics poissons-equation
edited Jul 22 at 11:58
asked Jul 21 at 15:32


Neroro G-Rank
12
12
add a comment |Â
add a comment |Â
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2858598%2fobtaining-simultaneous-equations-from-a-dicretized-poissons-equation%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password