Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What exactly is BoundaryConditionDirichlet? #965

Closed
xzczd opened this issue Nov 4, 2021 · 5 comments
Closed

What exactly is BoundaryConditionDirichlet? #965

xzczd opened this issue Nov 4, 2021 · 5 comments

Comments

@xzczd
Copy link
Contributor

xzczd commented Nov 4, 2021

The document and its name seem to suggest it's used for setting Dirichlet boundary condition, but is it true? If I set tspan = (0, 0.7) in #962, the following solution is obtained:
c
Seems that something like open boundary condition (or transparent boundary condition, or boundary condition at infinity, or whatever you want to call it) has been set. (I haven't compared it to the analytic solution, so I may be wrong. )

What's the actual boundary condition here?

@ranocha
Copy link
Member

ranocha commented Nov 8, 2021

As stated in our README.md (and common in CFD; finite volume, discontinuous Galerkin, flux reconstruction, ... methods), we use

weakly-enforced boundary conditions

in Trixi.jl. Such a shock tube problem is usually run to a small final time so that the numerical solution does not interact with the boundary. In that case, such a boundary condition is fine.

@xzczd
Copy link
Contributor Author

xzczd commented Nov 8, 2021

@ranocha Er… could you explain the b.c. with traditional math notation, or add a reference readable for a CFD noob? I think it would be good to include such stuff in the tutorial.

… so that the numerical solution does not interact with the boundary.

Perhaps we can extend the discussion a bit: It may be my illusion, but I have a feeling that introductions of Euler equations in various materials tend to avoid discussing solutions interacting with the boundary of Euler equations, they're almost always about solutions localized in a small domain, or periodic. Is it because solutions interacting with the boundary is too complicated to discuss? (BTW b.c. of PDE is something that confuses me for years, I asked a question here: https://math.stackexchange.com/q/450367/58219)

@gregorgassner
Copy link
Contributor

Boundary conditions for hyperbolic problems, especially for hyperbolic systems are tricky and quite different to e.g. elliptic PDEs. If you want to read up on this, I would read up on for instance "characteristic boundary conditions" and do a search on it. BCs for hyperbolic problems are often difficult, as they are in some sense artificial for many applications (except, when you have solid wall BCs).

If you follow the key word characteristic boundary condition, you will most likely get to the theoretical background and the difficulties. Also, look up for non-reflecting boundary conditions. I recommend for instance the CFD book by BLAZEK, but there are many others that discuss the implementation (and the difficulty) of boundary conditions.

In Trixi.jl, DirichletBoundaryConditions refers to prescribing an outer state at the boundary, but use the numerical flux at the surface to handle the situation (num flux uses value outside and insede and computes a boundary flux). Note that technically, there is no such thing as Dirichlet BC for compressible Euler (only in a very particular case, e.g. supersonic inflow). By using a numerical flux function, the BC state is applied weakly to the scheme. In particular, if you use a very accurate numerical flux function such as e.g. Roe's approximate Riemann solver, the Trixi.jl Dirichlet BC approaches a characteristic BC...if you use for instance Lax_Friedrichs numerical flux, it is more akin to a penalty type BC.

@xzczd
Copy link
Contributor Author

xzczd commented Nov 9, 2021

@gregorgassner I strongly recommend including these in the document, ideally a section named Boundary Conditions or so, but even a few lines a single line BCs for hyperbolic problems are often difficult would be a salvation.

@DanielDoehring
Copy link
Contributor

DanielDoehring commented Mar 9, 2024

We recently added a reference to a good introductory paper in the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants