Exact vs approximate Riemann solvers












1












$begingroup$


I am trying to understand numerical methods for conservation laws. I am confused with few terminologies. I have the following doubts.




  1. When do we say that a numerical scheme for a conservation law is a Riemann solver?


  2. What is the difference between approximate and exact Riemann solvers?


  3. I read that Godunov scheme is an exact Riemann solver, but is there any other scheme which is exact Riemann solver?











share|cite|improve this question











$endgroup$

















    1












    $begingroup$


    I am trying to understand numerical methods for conservation laws. I am confused with few terminologies. I have the following doubts.




    1. When do we say that a numerical scheme for a conservation law is a Riemann solver?


    2. What is the difference between approximate and exact Riemann solvers?


    3. I read that Godunov scheme is an exact Riemann solver, but is there any other scheme which is exact Riemann solver?











    share|cite|improve this question











    $endgroup$















      1












      1








      1





      $begingroup$


      I am trying to understand numerical methods for conservation laws. I am confused with few terminologies. I have the following doubts.




      1. When do we say that a numerical scheme for a conservation law is a Riemann solver?


      2. What is the difference between approximate and exact Riemann solvers?


      3. I read that Godunov scheme is an exact Riemann solver, but is there any other scheme which is exact Riemann solver?











      share|cite|improve this question











      $endgroup$




      I am trying to understand numerical methods for conservation laws. I am confused with few terminologies. I have the following doubts.




      1. When do we say that a numerical scheme for a conservation law is a Riemann solver?


      2. What is the difference between approximate and exact Riemann solvers?


      3. 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






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited Dec 18 '18 at 13:58









      Harry49

      6,17331132




      6,17331132










      asked Dec 17 '18 at 11:58









      RosyRosy

      1095




      1095






















          2 Answers
          2






          active

          oldest

          votes


















          0












          $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






          share|cite|improve this answer











          $endgroup$





















            0












            $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.






            share|cite|improve this answer









            $endgroup$













              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
              });


              }
              });














              draft saved

              draft discarded


















              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









              0












              $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






              share|cite|improve this answer











              $endgroup$


















                0












                $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






                share|cite|improve this answer











                $endgroup$
















                  0












                  0








                  0





                  $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






                  share|cite|improve this answer











                  $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







                  share|cite|improve this answer














                  share|cite|improve this answer



                  share|cite|improve this answer








                  edited Dec 18 '18 at 14:21

























                  answered Dec 18 '18 at 13:46









                  Harry49Harry49

                  6,17331132




                  6,17331132























                      0












                      $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.






                      share|cite|improve this answer









                      $endgroup$


















                        0












                        $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.






                        share|cite|improve this answer









                        $endgroup$
















                          0












                          0








                          0





                          $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.






                          share|cite|improve this answer









                          $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.







                          share|cite|improve this answer












                          share|cite|improve this answer



                          share|cite|improve this answer










                          answered Jan 5 at 23:13









                          MarkMark

                          4617




                          4617






























                              draft saved

                              draft discarded




















































                              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.




                              draft saved


                              draft discarded














                              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





















































                              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







                              Popular posts from this blog

                              android studio warns about leanback feature tag usage required on manifest while using Unity exported app?

                              SQL update select statement

                              'app-layout' is not a known element: how to share Component with different Modules