Exact vs approximate Riemann solvers
$begingroup$
I am trying to understand numerical methods for conservation laws. I am confused with few terminologies. I have the following doubts.
When do we say that a numerical scheme for a conservation law is a Riemann solver?
What is the difference between approximate and exact Riemann solvers?
I read that Godunov scheme is an exact Riemann solver, but is there any other scheme which is exact Riemann solver?
pde numerical-methods terminology hyperbolic-equations
$endgroup$
add a comment |
$begingroup$
I am trying to understand numerical methods for conservation laws. I am confused with few terminologies. I have the following doubts.
When do we say that a numerical scheme for a conservation law is a Riemann solver?
What is the difference between approximate and exact Riemann solvers?
I read that Godunov scheme is an exact Riemann solver, but is there any other scheme which is exact Riemann solver?
pde numerical-methods terminology hyperbolic-equations
$endgroup$
add a comment |
$begingroup$
I am trying to understand numerical methods for conservation laws. I am confused with few terminologies. I have the following doubts.
When do we say that a numerical scheme for a conservation law is a Riemann solver?
What is the difference between approximate and exact Riemann solvers?
I read that Godunov scheme is an exact Riemann solver, but is there any other scheme which is exact Riemann solver?
pde numerical-methods terminology hyperbolic-equations
$endgroup$
I am trying to understand numerical methods for conservation laws. I am confused with few terminologies. I have the following doubts.
When do we say that a numerical scheme for a conservation law is a Riemann solver?
What is the difference between approximate and exact Riemann solvers?
I read that Godunov scheme is an exact Riemann solver, but is there any other scheme which is exact Riemann solver?
pde numerical-methods terminology hyperbolic-equations
pde numerical-methods terminology hyperbolic-equations
edited Dec 18 '18 at 13:58
Harry49
6,17331132
6,17331132
asked Dec 17 '18 at 11:58
RosyRosy
1095
1095
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
To make everything clear, let us go back to Godunov's method for scalar conservation laws $u_t + f(u)_x = 0$. Godunov's method reads
$$
u_i^{n+1} = u_i^n - frac{Delta t}{Delta x}(f_{i+1/2} - f_{i-1/2})
$$
where $u_i^n simeq u(x_i, t_n)$, $x_{i+1} = x_i+Delta x$, $t_{n+1} = t_n+Delta t$, and $f_{i+1/2}$ is the numerical flux at $x_{i+1/2}$. The latter is given by
$f_{i+1/2} = f (u^*)$,
where $u^*$ is obtained by evaluating the solution to the Riemann problem
$$
u(x,t_n) = leftlbrace
begin{aligned}
& u_i^n & & text{if}quad x<x_{i+1/2}\
& u_{i+1}^n & & text{if}quad x>x_{i+1/2}
end{aligned}
right.
$$
at $(x_{i+1/2}, t_{n+1})$ (see Sec. 4.11 of [1]). If this computation does not require all the Riemann solution, it requires a full knowledge of its structure, i.e. what we call an exact Riemann solver. This notion is intrinsically linked to the Godunov method.
In some cases it may be very expensive to evaluate $u^*$ exactly as defined above. Thus, approximate Riemann solvers are sometimes preferred. For instance, one can name the Roe, HLLE, and HLLC solvers (see Sec. 15.3 of [1]). Those methods introduce approximations of $u^*$ which are easier to compute than the exact $u^*$. However, one should be careful since approximate Riemann solvers can introduce artifacts for particular solutions (e.g. transsonic rarefactions and slow-moving shocks).
[1] R.J. LeVeque, Finite Volume Methods for Hyperbolic Problems, Cambridge University Press, 2002, doi:10.1017/CBO9780511791253
$endgroup$
add a comment |
$begingroup$
In addition to Harry49's answer, I would recommend you a book to read if you want to know more about Riemann solvers from basic to advanced things:
E.F. Toro, Riemann solvers and numerical methods for fluid dynamics, 3rd edition, 2009
I know it helped me a lot.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3043855%2fexact-vs-approximate-riemann-solvers%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
To make everything clear, let us go back to Godunov's method for scalar conservation laws $u_t + f(u)_x = 0$. Godunov's method reads
$$
u_i^{n+1} = u_i^n - frac{Delta t}{Delta x}(f_{i+1/2} - f_{i-1/2})
$$
where $u_i^n simeq u(x_i, t_n)$, $x_{i+1} = x_i+Delta x$, $t_{n+1} = t_n+Delta t$, and $f_{i+1/2}$ is the numerical flux at $x_{i+1/2}$. The latter is given by
$f_{i+1/2} = f (u^*)$,
where $u^*$ is obtained by evaluating the solution to the Riemann problem
$$
u(x,t_n) = leftlbrace
begin{aligned}
& u_i^n & & text{if}quad x<x_{i+1/2}\
& u_{i+1}^n & & text{if}quad x>x_{i+1/2}
end{aligned}
right.
$$
at $(x_{i+1/2}, t_{n+1})$ (see Sec. 4.11 of [1]). If this computation does not require all the Riemann solution, it requires a full knowledge of its structure, i.e. what we call an exact Riemann solver. This notion is intrinsically linked to the Godunov method.
In some cases it may be very expensive to evaluate $u^*$ exactly as defined above. Thus, approximate Riemann solvers are sometimes preferred. For instance, one can name the Roe, HLLE, and HLLC solvers (see Sec. 15.3 of [1]). Those methods introduce approximations of $u^*$ which are easier to compute than the exact $u^*$. However, one should be careful since approximate Riemann solvers can introduce artifacts for particular solutions (e.g. transsonic rarefactions and slow-moving shocks).
[1] R.J. LeVeque, Finite Volume Methods for Hyperbolic Problems, Cambridge University Press, 2002, doi:10.1017/CBO9780511791253
$endgroup$
add a comment |
$begingroup$
To make everything clear, let us go back to Godunov's method for scalar conservation laws $u_t + f(u)_x = 0$. Godunov's method reads
$$
u_i^{n+1} = u_i^n - frac{Delta t}{Delta x}(f_{i+1/2} - f_{i-1/2})
$$
where $u_i^n simeq u(x_i, t_n)$, $x_{i+1} = x_i+Delta x$, $t_{n+1} = t_n+Delta t$, and $f_{i+1/2}$ is the numerical flux at $x_{i+1/2}$. The latter is given by
$f_{i+1/2} = f (u^*)$,
where $u^*$ is obtained by evaluating the solution to the Riemann problem
$$
u(x,t_n) = leftlbrace
begin{aligned}
& u_i^n & & text{if}quad x<x_{i+1/2}\
& u_{i+1}^n & & text{if}quad x>x_{i+1/2}
end{aligned}
right.
$$
at $(x_{i+1/2}, t_{n+1})$ (see Sec. 4.11 of [1]). If this computation does not require all the Riemann solution, it requires a full knowledge of its structure, i.e. what we call an exact Riemann solver. This notion is intrinsically linked to the Godunov method.
In some cases it may be very expensive to evaluate $u^*$ exactly as defined above. Thus, approximate Riemann solvers are sometimes preferred. For instance, one can name the Roe, HLLE, and HLLC solvers (see Sec. 15.3 of [1]). Those methods introduce approximations of $u^*$ which are easier to compute than the exact $u^*$. However, one should be careful since approximate Riemann solvers can introduce artifacts for particular solutions (e.g. transsonic rarefactions and slow-moving shocks).
[1] R.J. LeVeque, Finite Volume Methods for Hyperbolic Problems, Cambridge University Press, 2002, doi:10.1017/CBO9780511791253
$endgroup$
add a comment |
$begingroup$
To make everything clear, let us go back to Godunov's method for scalar conservation laws $u_t + f(u)_x = 0$. Godunov's method reads
$$
u_i^{n+1} = u_i^n - frac{Delta t}{Delta x}(f_{i+1/2} - f_{i-1/2})
$$
where $u_i^n simeq u(x_i, t_n)$, $x_{i+1} = x_i+Delta x$, $t_{n+1} = t_n+Delta t$, and $f_{i+1/2}$ is the numerical flux at $x_{i+1/2}$. The latter is given by
$f_{i+1/2} = f (u^*)$,
where $u^*$ is obtained by evaluating the solution to the Riemann problem
$$
u(x,t_n) = leftlbrace
begin{aligned}
& u_i^n & & text{if}quad x<x_{i+1/2}\
& u_{i+1}^n & & text{if}quad x>x_{i+1/2}
end{aligned}
right.
$$
at $(x_{i+1/2}, t_{n+1})$ (see Sec. 4.11 of [1]). If this computation does not require all the Riemann solution, it requires a full knowledge of its structure, i.e. what we call an exact Riemann solver. This notion is intrinsically linked to the Godunov method.
In some cases it may be very expensive to evaluate $u^*$ exactly as defined above. Thus, approximate Riemann solvers are sometimes preferred. For instance, one can name the Roe, HLLE, and HLLC solvers (see Sec. 15.3 of [1]). Those methods introduce approximations of $u^*$ which are easier to compute than the exact $u^*$. However, one should be careful since approximate Riemann solvers can introduce artifacts for particular solutions (e.g. transsonic rarefactions and slow-moving shocks).
[1] R.J. LeVeque, Finite Volume Methods for Hyperbolic Problems, Cambridge University Press, 2002, doi:10.1017/CBO9780511791253
$endgroup$
To make everything clear, let us go back to Godunov's method for scalar conservation laws $u_t + f(u)_x = 0$. Godunov's method reads
$$
u_i^{n+1} = u_i^n - frac{Delta t}{Delta x}(f_{i+1/2} - f_{i-1/2})
$$
where $u_i^n simeq u(x_i, t_n)$, $x_{i+1} = x_i+Delta x$, $t_{n+1} = t_n+Delta t$, and $f_{i+1/2}$ is the numerical flux at $x_{i+1/2}$. The latter is given by
$f_{i+1/2} = f (u^*)$,
where $u^*$ is obtained by evaluating the solution to the Riemann problem
$$
u(x,t_n) = leftlbrace
begin{aligned}
& u_i^n & & text{if}quad x<x_{i+1/2}\
& u_{i+1}^n & & text{if}quad x>x_{i+1/2}
end{aligned}
right.
$$
at $(x_{i+1/2}, t_{n+1})$ (see Sec. 4.11 of [1]). If this computation does not require all the Riemann solution, it requires a full knowledge of its structure, i.e. what we call an exact Riemann solver. This notion is intrinsically linked to the Godunov method.
In some cases it may be very expensive to evaluate $u^*$ exactly as defined above. Thus, approximate Riemann solvers are sometimes preferred. For instance, one can name the Roe, HLLE, and HLLC solvers (see Sec. 15.3 of [1]). Those methods introduce approximations of $u^*$ which are easier to compute than the exact $u^*$. However, one should be careful since approximate Riemann solvers can introduce artifacts for particular solutions (e.g. transsonic rarefactions and slow-moving shocks).
[1] R.J. LeVeque, Finite Volume Methods for Hyperbolic Problems, Cambridge University Press, 2002, doi:10.1017/CBO9780511791253
edited Dec 18 '18 at 14:21
answered Dec 18 '18 at 13:46
Harry49Harry49
6,17331132
6,17331132
add a comment |
add a comment |
$begingroup$
In addition to Harry49's answer, I would recommend you a book to read if you want to know more about Riemann solvers from basic to advanced things:
E.F. Toro, Riemann solvers and numerical methods for fluid dynamics, 3rd edition, 2009
I know it helped me a lot.
$endgroup$
add a comment |
$begingroup$
In addition to Harry49's answer, I would recommend you a book to read if you want to know more about Riemann solvers from basic to advanced things:
E.F. Toro, Riemann solvers and numerical methods for fluid dynamics, 3rd edition, 2009
I know it helped me a lot.
$endgroup$
add a comment |
$begingroup$
In addition to Harry49's answer, I would recommend you a book to read if you want to know more about Riemann solvers from basic to advanced things:
E.F. Toro, Riemann solvers and numerical methods for fluid dynamics, 3rd edition, 2009
I know it helped me a lot.
$endgroup$
In addition to Harry49's answer, I would recommend you a book to read if you want to know more about Riemann solvers from basic to advanced things:
E.F. Toro, Riemann solvers and numerical methods for fluid dynamics, 3rd edition, 2009
I know it helped me a lot.
answered Jan 5 at 23:13
MarkMark
4617
4617
add a comment |
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
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
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3043855%2fexact-vs-approximate-riemann-solvers%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
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
Required, but never shown
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
Required, but never shown
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
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown