Merge lp:~nickpapior/siesta/4.1-naive-aux-cell into lp:siesta/4.1
Proposed by
Nick Papior
Status: | Merged |
---|---|
Merged at revision: | 934 |
Proposed branch: | lp:~nickpapior/siesta/4.1-naive-aux-cell |
Merge into: | lp:siesta/4.1 |
Diff against target: |
149 lines (+54/-15) 6 files modified
Docs/siesta.tex (+26/-1) Src/read_options.F90 (+10/-0) Src/siesta_init.F (+6/-5) Src/siesta_options.F90 (+3/-0) Src/state_init.F (+8/-8) version.info (+1/-1) |
To merge this branch: | bzr merge lp:~nickpapior/siesta/4.1-naive-aux-cell |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alberto Garcia | Pending | ||
Review via email: mp+348464@code.launchpad.net |
Commit message
Reimplemented the NaiveAuxiliaryCell option
And further enhanced it by forcing the aux-cell size to
be the largest one for anything but single-shot calculations.
This does not fix *all* cases of error handling since when performing
variable cell calculations the auxiliary cell may again change.
One solution could be if naive aux-cell is used then the aux-cell is
forced to be the same for cell_can_change calculations?
Description of the change
This reimplements the NaiveAuxiliaryCell option which forces the auxiliary cell to be constant.
However, I would like to get your opinion (Alberto) on the cell_can_change comment above?
To post a comment you must log in.
It seems that there are two types of "errors" that can appear:
1. A supercell is not big enough. This causes a crash in 'hsparse', and should be avoided at all costs.
2. The supercell for the new geometry is different (because of cell changes), and thus the DM cannot be reused safely. In this case we could just skip the reuse of the DM for this particular instance.
Hopefully the number of times that this happens is limited, as changes will tend to become smaller and smaller (?).
Now, I believe it is true that the "naive-aux-cell" algorithm gives a safe auxcell for a given unit cell, isn't it? Note that to be completely sure we can run *always* the tight graph algorithm, but I do not think it is necessary.
Then we can leave the code as it is, recomputing nsc at each geometry, but checking whether nscold /= nsc, and in that case forbid the reuse of the DM.