Closed ghost closed 7 years ago
Hi Vladimir
That typically happens when the permutation threshold is too low. Changing all thresholds to 1.0e-2 gives C2v:
16
H 2.067069977 -1.289866032 0.018250820 C 1.078791503 -0.807544001 -0.054783425 H 2.067069977 1.289866032 0.018250820 C 1.078791503 0.807544001 -0.054783425 H -0.000000000 -1.501712408 -2.072488160 C -0.000000000 -1.331863956 -0.986671172 H 0.000000000 1.501712408 -2.072488160 C 0.000000000 1.331863956 -0.986671172 H -0.000000000 -1.457580052 1.967402839 C -0.000000000 -0.778753029 1.101953328 H 0.000000000 1.457580052 1.967402839 C 0.000000000 0.778753029 1.101953328 H -2.067069977 -1.289866032 0.018250820 C -1.078791503 -0.807544001 -0.054783425 H -2.067069977 1.289866032 0.018250820 C -1.078791503 0.807544001 -0.054783425
Hi, Marcus. I have found in source code default threshold values. https://github.com/mcodev31/libmsym/blob/master/src/context.h#L19 Does msym_example.c use it?
Yes msym_example uses a NULL threshold, which means default. Note that this is just example code, libmsym is meant as a library for other projects to integrate (e.g. Avogadro and Luscus have versions with symmetry from libmsym)
If you want to use your own threshold do this:
#define MY_ZERO_THRESHOLD 1.0e-2
#define MY_GEOMETRY_THRESHOLD 1.0e-2
#define MY_ANGLE_THRESHOLD 1.0e-2
#define MY_EQUIVALENCE_THRESHOLD 1.0e-2
#define MY_EIGFACT_THRESHOLD 1.0e-2
#define MY_PERMUTATION_THRESHOLD 1.0e-2
#define MY_ORTHOGONALIZATION_THRESHOLD 1.0e-2
const msym_thresholds_t thresholds = {
.zero = MY_ZERO_THRESHOLD,
.geometry = MY_GEOMETRY_THRESHOLD,
.angle = MY_ANGLE_THRESHOLD,
.equivalence = MY_EQUIVALENCE_THRESHOLD,
.eigfact = MY_EIGFACT_THRESHOLD,
.permutation = MY_PERMUTATION_THRESHOLD,
.orthogonalization = MY_ORTHOGONALIZATION_THRESHOLD
};
int main(int argc, const char * argv[]) {
int ret = 1;
if(argc == 2){
ret = example(argv[1],&thresholds);
fflush(stdout);
} else {
printf("usage msym_example <xyz-file>");
}
return ret;
}
Oh, thanks a lot. I have no questions on it.
Dear libmsym developers.
I have a slightly asymmetric molecule in XYZ-file
And I want to symmetrize it to C2V point group as I can do it with NWCHEM http://www.nwchem-sw.org/index.php/Release66:Geometry#SYMMETRY_--_Symmetry_Group_Input
I try to run example function from msym_example.c with different thresholds parameter, especially I with different DEFAULT_PERMUTATION_THRESHOLD, but I receive on
What should I do to get symmetrized molecule.
Best, Vladimir.