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

add openbc #195

Merged
merged 4 commits into from
Sep 28, 2018
Merged

add openbc #195

merged 4 commits into from
Sep 28, 2018

Conversation

JeroenMulkers
Copy link
Collaborator

@JeroenMulkers JeroenMulkers commented Sep 27, 2018

A few notes about the implementation of open boundary conditions:

  • The default is "openbc = false". So the default behaviour matches the old behaviour.
  • The Neumann BC and open BC are equivalent for non-chiral systems. Hence, I only implemented open BC in the dmi and dmibulk kernels.
  • The difference of relaxed magnetization configurations with Neumann and open BC converges to zero for a decreasing cell size.
  • test/dmienergy-vardmi.mx3 and test/dmienergy.mx3 fail when using open BC. By making the error tolerance a bit less strict, also these tests succeed.

Conclusion: so far it seems to me that the difference between open and Neumann BC is rather small and, for relaxed magnetizations, becomes even smaller when one decreases the cell size.

(kernels are not yet recompiled)

@JeroenMulkers JeroenMulkers mentioned this pull request Sep 27, 2018
@godsic
Copy link
Contributor

godsic commented Sep 28, 2018

@JeroenMulkers Travis fails, could you please rebase against master and double check it compiles?

@JeroenMulkers
Copy link
Collaborator Author

Rebuild the kernels. Should be OK now.

@JLeliaert
Copy link
Contributor

Travis succeeds

@JLeliaert JLeliaert closed this Sep 28, 2018
@godsic godsic reopened this Sep 28, 2018
@godsic
Copy link
Contributor

godsic commented Sep 28, 2018

@JeroenMulkers Are there any tests of openbc in particular?

Copy link
Contributor

@godsic godsic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Are there any tests of openbc in particular?
  • Can we make OpenBC optional down to the axis, instead of forcing it everywhere?

@JeroenMulkers
Copy link
Collaborator Author

JeroenMulkers commented Sep 28, 2018 via email

@godsic
Copy link
Contributor

godsic commented Sep 28, 2018

@JeroenMulkers
Copy link
Collaborator Author

I added a test for the open BC based on the '1D' standard problem proposed by Cortés-Ortuño et al. See test/openbc.mx3 for more details.

@godsic
Copy link
Contributor

godsic commented Sep 28, 2018

@JeroenMulkers I am more comfortable with 1e-5 tolerance. Can you achieve it with smaller cells? Then, would you be so kind to make three identical tests, but aligned along x, y and z?

@JeroenMulkers
Copy link
Collaborator Author

I could bring the tolerance down to 1e-3. The analytical result gives the canting at the edge of an infinitely long wire, whereas we of course simulate a finite wire. Therefore, it is hard to let the simulated canting converge to the analytical one.

It is easy to shown that a 1D model can be simulated by using one row of cells (let's say in the x direction) and periodic boundary conditions in the y direction. Hence, we can also compare the case with open and periodic boundary conditions. In this case, a tolerance of 1e-5 can be achieved.

I have added the case where the nano wire is aligned along the y direction. There is no canting at the edges of a nano wire along the z direction, so this case is not tested.

@godsic godsic merged commit 7bb19fe into master Sep 28, 2018
@JonathanMaes JonathanMaes deleted the feature/openbc branch November 5, 2024 10:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants