SSCHAcode / python-sscha

The python implementation of the Stochastic Self-Consistent Harmonic Approximation (SSCHA).
GNU General Public License v3.0
55 stars 21 forks source link

problem about Symmetrize #122

Closed woyolo990422 closed 1 year ago

woyolo990422 commented 1 year ago

Traceback (most recent call last): File "nvt_local.py", line 83, in relax.relax(get_stress = True) File "/share/home/jiansun2/apps/anaconda3/lib/python3.8/site-packages/sscha/Relax.py", line 350, in relax self.minim.ensemble.generate(self.N_configs, sobol = sobol, sobol_scramble = sobol_scramble, sobol_scatter = sobol_scatter) File "/share/home/jiansun2/apps/anaconda3/lib/python3.8/site-packages/sscha/Ensemble.py", line 1125, in generate structs = self.dyn_0.ExtractRandomStructures(N // 2, self.T0, project_on_vectors = project_on_modes, lock_low_w = self.ignore_small_w, sobol = sobol, sobol_scramble = sobol_scramble, sobol_scatter = sobol_scatter) # normal Sobol generatorDiegom_test File "/share/home/jiansun2/apps/anaconda3/lib/python3.8/site-packages/cellconstructor/Phonons.py", line 2014, in ExtractRandomStructures raise ValueError(ERR_MSG) ValueError: Error, the current matrix is not positive definite. I cannot extract a random ensamble. If you want to skip this error, consider calling the method ForcePositiveDefinite() before extracting the ensemble.

    It could also be a consequence of a sum rule not well imposed.
    Try to run Symmetrize() to force the sum rule.

nvt_local.py.txt

mesonepigreco commented 1 year ago

Dear @woyolo990422 , The code in the error message, is suggesting that your harmonic dynamical matrix may have some problem (like it has imaginary frequencies). As the code is suggesting in the error message, try to add the line in the input:

harmonic_dyn.ForcePositiveDefinite()

After loading the dynamical matrix to start the simulation.