1 // 2 // symop.h 3 // libmsym 4 // 5 // See accompanying file LICENSE 6 // 7 // Created by Marcus Johansson on 30/10/14. 8 // Copyright (c) 2014 Marcus Johansson. 9 // 10 // Distributed under the MIT License ( See LICENSE file or copy at http://opensource.org/licenses/MIT ) 11 // 12 13 #ifndef __MSYM__SYMOP_h 14 #define __MSYM__SYMOP_h 15 16 #include "msym.h" 17 18 /* external names make the code unreadable */ 19 #define IDENTITY MSYM_SYMMETRY_OPERATION_TYPE_IDENTITY 20 #define REFLECTION MSYM_SYMMETRY_OPERATION_TYPE_REFLECTION 21 #define INVERSION MSYM_SYMMETRY_OPERATION_TYPE_INVERSION 22 #define PROPER_ROTATION MSYM_SYMMETRY_OPERATION_TYPE_PROPER_ROTATION 23 #define IMPROPER_ROTATION MSYM_SYMMETRY_OPERATION_TYPE_IMPROPER_ROTATION 24 25 #define NONE MSYM_SYMMETRY_OPERATION_ORIENTATION_NONE 26 #define HORIZONTAL MSYM_SYMMETRY_OPERATION_ORIENTATION_HORIZONTAL 27 #define VERTICAL MSYM_SYMMETRY_OPERATION_ORIENTATION_VERTICAL 28 #define DIHEDRAL MSYM_SYMMETRY_OPERATION_ORIENTATION_DIHEDRAL 29 30 31 32 void symopPow(msym_symmetry_operation_t *A, int pow, msym_symmetry_operation_t *O); 33 void applySymmetryOperation(msym_symmetry_operation_t *sop,double iv[3], double ov[3]); 34 void symmetryOperationMatrix(msym_symmetry_operation_t *sop, double m[3][3]); 35 double symmetryOperationCharacter(msym_symmetry_operation_t *sop, msym_basis_function_t *f); 36 void copySymmetryOperation(msym_symmetry_operation_t *dst, msym_symmetry_operation_t *src); 37 msym_symmetry_operation_t *findSymmetryOperation(msym_symmetry_operation_t*, msym_symmetry_operation_t*, int, msym_thresholds_t *thresholds); 38 void invertSymmetryOperation(msym_symmetry_operation_t *sop, msym_symmetry_operation_t *isop); 39 double symmetryOperationCartesianCharacter(msym_symmetry_operation_t *sop); 40 double symmetryOperationYCharacter(msym_symmetry_operation_t *sop, int l); 41 void symmetryOperationName(msym_symmetry_operation_t* sop, int l, char buf[l]); 42 void symmetryOperationShortName(msym_symmetry_operation_t* sop, int l, char buf[l]); 43 void printSymmetryOperation(msym_symmetry_operation_t *sop); 44 45 #endif /* defined(__MSYM__SYMOP_h) */ 46