-
Notifications
You must be signed in to change notification settings - Fork 86
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
Nonzero Dirichlet boundary conditions #177
Comments
The boundary conditions are not continuous |
You mean the 4 corners? |
The boundary conditions you mention in:
It is not continuous at (0, 0) as it can be 0 or 1. But the boundary conditions in your snippet of code: BCs = [
DirichletBVP2D(
x_min=xmin, x_min_val=lambda y: 0,
x_max=xmax, x_max_val=lambda y: 0,
y_min=ymin, y_min_val=lambda x: 0,
y_max=ymax, y_max_val=lambda x: 0,
)
] should work. |
Thanks for your quick reply. I must have made a typo, the BCs in the snippet enforce BCs = [
DirichletBVP2D(
x_min=xmin, x_min_val=lambda y: return 0 if y in [0, 1] else 1,
x_max=xmax, x_max_val=lambda y: 0,
y_min=ymin, y_min_val=lambda x: 0,
y_max=ymax, y_max_val=lambda x: 0,
)
] |
I don't think that will work. Why not use some continuous and approximate step function like heaviside - https://en.wikipedia.org/wiki/Heaviside_step_function? |
Ya, that's right, I didn't mean the exact snippet, but conceptually. So, using NumPy's heaviside (in a way that mimics |
Directly using heaviside might not work with AD (in pytorch - https://pytorch.org/docs/stable/generated/torch.heaviside.html). But using an approximate continuous form should work. |
Gotcha thanks! |
I'm trying to solve the Laplace PDE in 2D with the following boundary conditions:
x = 0 ; u = 1
x = 1 ; u = 0
y = 0 ; u = 0
y = 1 ; u = 0
I'm currently using the following snippet to enforce these BCs:
but it seems that the BCs at
y_min
andy_max
are being ignored. From the looks of the solution, it seems that aty_min
andy_max
, a Neumann BC has been enforced (du/dy=0
).The text was updated successfully, but these errors were encountered: