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

Investigate tolerance in chol_omp #128

Open
RichardWaiteSTFC opened this issue Feb 6, 2023 · 0 comments
Open

Investigate tolerance in chol_omp #128

RichardWaiteSTFC opened this issue Feb 6, 2023 · 0 comments

Comments

@RichardWaiteSTFC
Copy link
Collaborator

When I run the incommensurate BiFeO3 calculation with mex disabled and hermit=True I get this error

Error using spinw/spinwave (line 831)
Hamiltonian matrix is not positive definite, probably the
magnetic structure is wrong! For approximate diagonalization try
the param.hermit=false option

Recall I saw this error previously for the supercell commensurate calculation and we thought maybe the supercell structure was subtly different - hence only doing hermit=False for the supercell calc in the script.

However if I enable mex then the incommensurate calc executes fine with hermit=True - hence the profile results saved here https://github.com/SpinW/performance/tree/main/PCWIN64_2022b_SpinW1634)

Is this expected? The non-mex chol function returns posDef but chol_omp doesn't return this - yet the doc string does say it will throw an error if the matrix is not positive definite. Maybe they use different tolerances?

UPDATE:
chol_omp does seem to throw an error for non positive definite matrices (at least in this case):

M = ones(2);
Romp = chol_omp(M)

UPDATE 2:
For the supercell calc. with mex enabled and hermit=True chol_omp does indeed throw an error
The input matrix is not positive definite

Originally posted by @RichardWaiteSTFC in #124 (comment)

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

No branches or pull requests

1 participant