Open boundary in wave equation with “applyBoundaryCondition”

8 views (last 30 days)
I am implementing a simulation of the wave equation using "solvepde” function in MATLAB. the wave is travelling to right from edge E1 and propagate off forever the edge E3 without being disturbed. how can I specify open boundary (full absorbing/nonreflecting boundary) condition with “applyBoundaryCondition” command?
I am aware there are many academic papers discussing nonreflecting/absorbing boundary conditions but most seem to focus on analytic solutions. On open boundary we have:
I cannot figure out how to implement nonreflecting boundaries numerically in my simulation. This is the code of incident wave on edge E1:
fun1=@(location,state) 2*sin(2*pi/T*state.time)
applyBoundaryCondition(model,'dirichlet','Edge',1,'u',fun1)
Does anyone know how can I adjust the “applyBoundaryCondition” to have open boundaries on edge E3?
  19 Comments
Yaser
Yaser on 21 Aug 2022
Sory i had mistake. edge 3 is true. we want to apply open/non reflective boundary condition at edge 3.
Further, we dont use Pde toolbox. we are using solvepde that can solve time dependent problem which PDE toolbox cannot. in matlab help we have:
Torsten
Torsten on 21 Aug 2022
Edited: Torsten on 21 Aug 2022
"solvepde" is part of the PDE toolbox.
Look at the left-hand side of the page
to see this.
I do not doubt that the PDE toolbox can solve the wave equation, but not with a non-reflecting boundary condition.
Try a different boundary condition at edge 3 - if "solvepde" works with the changed setting, you know at least the reason why the integrator fails.

Sign in to comment.

Answers (0)

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!