Octopus 16.0
real-space, real-time, TDDFT code
symmetries_finite.c File Reference
#include <config.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string_f.h>
Include dependency graph for symmetries_finite.c:

Classes

struct  ATOM
 
struct  _SYMMETRY_ELEMENT_
 
struct  POINT_GROUP
 

Macros

#define DIMENSION   3
 
#define MAXPARAM   7
 
#define PointGroupsCount   (sizeof(PointGroups) / sizeof(POINT_GROUP))
 

Typedefs

typedef struct _SYMMETRY_ELEMENT_ SYMMETRY_ELEMENT
 

Functions

int true (void)
 
double pow2 (double x)
 
int establish_pairs (SYMMETRY_ELEMENT *elem)
 
int check_transform_order (SYMMETRY_ELEMENT *elem)
 
int same_transform (SYMMETRY_ELEMENT *a, SYMMETRY_ELEMENT *b)
 
SYMMETRY_ELEMENTalloc_symmetry_element (void)
 
void destroy_symmetry_element (SYMMETRY_ELEMENT *elem)
 
int check_transform_quality (SYMMETRY_ELEMENT *elem)
 
double eval_optimization_target_function (SYMMETRY_ELEMENT *elem, int *finish)
 
void get_params (SYMMETRY_ELEMENT *elem, double values[])
 
void set_params (SYMMETRY_ELEMENT *elem, double values[])
 
void optimize_transformation_params (SYMMETRY_ELEMENT *elem)
 
int refine_symmetry_element (SYMMETRY_ELEMENT *elem, int build_table)
 
void mirror_atom (SYMMETRY_ELEMENT *plane, ATOM *from, ATOM *to)
 
SYMMETRY_ELEMENTinit_mirror_plane (int i, int j)
 
SYMMETRY_ELEMENTinit_ultimate_plane (void)
 
void invert_atom (SYMMETRY_ELEMENT *center, ATOM *from, ATOM *to)
 
SYMMETRY_ELEMENTinit_inversion_center (void)
 
void rotate_atom (SYMMETRY_ELEMENT *axis, ATOM *from, ATOM *to)
 
SYMMETRY_ELEMENTinit_ultimate_axis (void)
 
SYMMETRY_ELEMENTinit_c2_axis (int i, int j, double support[DIMENSION])
 
SYMMETRY_ELEMENTinit_axis_parameters (double a[3], double b[3], double c[3])
 
SYMMETRY_ELEMENTinit_higher_axis (int ia, int ib, int ic)
 
void rotate_reflect_atom (SYMMETRY_ELEMENT *axis, ATOM *from, ATOM *to)
 
SYMMETRY_ELEMENTinit_improper_axis (int ia, int ib, int ic)
 
void find_center_of_something (void)
 
void find_planes (void)
 
void destroy_planes (void)
 
void find_inversion_centers (void)
 
void destroy_inversion_centers (void)
 
void find_infinity_axis (void)
 
void find_c2_axes (void)
 
void destroy_normal_axes ()
 
void destroy_improper_axes ()
 
void find_higher_axes (void)
 
void find_improper_axes (void)
 
void report_planes (void)
 
void report_inversion_centers (void)
 
void report_axes (void)
 
void report_improper_axes (void)
 
void report_and_reset_counters (void)
 
void find_symmetry_elements (void)
 
int compare_axes (const void *a, const void *b)
 
void sort_symmetry_elements (void)
 
void report_symmetry_elements_verbose (void)
 
void summarize_symmetry_elements (void)
 
void report_symmetry_elements_brief ()
 
void identify_point_group (int *point_group)
 
void FC_FUNC_ (symmetries_finite_init, SYMMETRIES_FINITE_INIT) const
 
void FC_FUNC_ (symmetries_finite_get_group_name, SYMMETRIES_FINITE_GET_GROUP_NAME) const
 
void FC_FUNC_ (symmetries_finite_get_group_elements, SYMMETRIES_FINITE_GET_GROUP_ELEMENTS) const
 
void FC_FUNC_ (symmetries_finite_end, SYMMETRIES_FINITE_END)()
 

Variables

POINT_GROUP PointGroups []
 
char * PointGroupRejectionReason = NULL
 

Macro Definition Documentation

◆ DIMENSION

#define DIMENSION   3

◆ MAXPARAM

#define MAXPARAM   7

◆ PointGroupsCount

#define PointGroupsCount   (sizeof(PointGroups) / sizeof(POINT_GROUP))

Typedef Documentation

◆ SYMMETRY_ELEMENT

Function Documentation

◆ true()

int true ( void  )

◆ pow2()

double pow2 ( double  x)

◆ establish_pairs()

int establish_pairs ( SYMMETRY_ELEMENT elem)

◆ check_transform_order()

int check_transform_order ( SYMMETRY_ELEMENT elem)

◆ same_transform()

int same_transform ( SYMMETRY_ELEMENT a,
SYMMETRY_ELEMENT b 
)

◆ alloc_symmetry_element()

SYMMETRY_ELEMENT * alloc_symmetry_element ( void  )

◆ destroy_symmetry_element()

void destroy_symmetry_element ( SYMMETRY_ELEMENT elem)

◆ check_transform_quality()

int check_transform_quality ( SYMMETRY_ELEMENT elem)

◆ eval_optimization_target_function()

double eval_optimization_target_function ( SYMMETRY_ELEMENT elem,
int *  finish 
)

◆ get_params()

void get_params ( SYMMETRY_ELEMENT elem,
double  values[] 
)

◆ set_params()

void set_params ( SYMMETRY_ELEMENT elem,
double  values[] 
)

◆ optimize_transformation_params()

void optimize_transformation_params ( SYMMETRY_ELEMENT elem)

◆ refine_symmetry_element()

int refine_symmetry_element ( SYMMETRY_ELEMENT elem,
int  build_table 
)

◆ mirror_atom()

void mirror_atom ( SYMMETRY_ELEMENT plane,
ATOM from,
ATOM to 
)

◆ init_mirror_plane()

SYMMETRY_ELEMENT * init_mirror_plane ( int  i,
int  j 
)

◆ init_ultimate_plane()

SYMMETRY_ELEMENT * init_ultimate_plane ( void  )

◆ invert_atom()

void invert_atom ( SYMMETRY_ELEMENT center,
ATOM from,
ATOM to 
)

◆ init_inversion_center()

SYMMETRY_ELEMENT * init_inversion_center ( void  )

◆ rotate_atom()

void rotate_atom ( SYMMETRY_ELEMENT axis,
ATOM from,
ATOM to 
)

◆ init_ultimate_axis()

SYMMETRY_ELEMENT * init_ultimate_axis ( void  )

◆ init_c2_axis()

SYMMETRY_ELEMENT * init_c2_axis ( int  i,
int  j,
double  support[DIMENSION] 
)

◆ init_axis_parameters()

SYMMETRY_ELEMENT * init_axis_parameters ( double  a[3],
double  b[3],
double  c[3] 
)

◆ init_higher_axis()

SYMMETRY_ELEMENT * init_higher_axis ( int  ia,
int  ib,
int  ic 
)

◆ rotate_reflect_atom()

void rotate_reflect_atom ( SYMMETRY_ELEMENT axis,
ATOM from,
ATOM to 
)

◆ init_improper_axis()

SYMMETRY_ELEMENT * init_improper_axis ( int  ia,
int  ib,
int  ic 
)

◆ find_center_of_something()

void find_center_of_something ( void  )

◆ find_planes()

void find_planes ( void  )

◆ destroy_planes()

void destroy_planes ( void  )

◆ find_inversion_centers()

void find_inversion_centers ( void  )

◆ destroy_inversion_centers()

void destroy_inversion_centers ( void  )

◆ find_infinity_axis()

void find_infinity_axis ( void  )

◆ find_c2_axes()

void find_c2_axes ( void  )

◆ destroy_normal_axes()

void destroy_normal_axes ( )

◆ destroy_improper_axes()

void destroy_improper_axes ( )

◆ find_higher_axes()

void find_higher_axes ( void  )

◆ find_improper_axes()

void find_improper_axes ( void  )

◆ report_planes()

void report_planes ( void  )

◆ report_inversion_centers()

void report_inversion_centers ( void  )

◆ report_axes()

void report_axes ( void  )

◆ report_improper_axes()

void report_improper_axes ( void  )

◆ report_and_reset_counters()

void report_and_reset_counters ( void  )

◆ find_symmetry_elements()

void find_symmetry_elements ( void  )

◆ compare_axes()

int compare_axes ( const void *  a,
const void *  b 
)

◆ sort_symmetry_elements()

void sort_symmetry_elements ( void  )

◆ report_symmetry_elements_verbose()

void report_symmetry_elements_verbose ( void  )

◆ summarize_symmetry_elements()

void summarize_symmetry_elements ( void  )

◆ report_symmetry_elements_brief()

void report_symmetry_elements_brief ( )

◆ identify_point_group()

void identify_point_group ( int *  point_group)

◆ FC_FUNC_() [1/4]

void FC_FUNC_ ( symmetries_finite_init  ,
SYMMETRIES_FINITE_INIT   
) const

◆ FC_FUNC_() [2/4]

void FC_FUNC_ ( symmetries_finite_get_group_name  ,
SYMMETRIES_FINITE_GET_GROUP_NAME   
) const

◆ FC_FUNC_() [3/4]

void FC_FUNC_ ( symmetries_finite_get_group_elements  ,
SYMMETRIES_FINITE_GET_GROUP_ELEMENTS   
) const

◆ FC_FUNC_() [4/4]

void FC_FUNC_ ( symmetries_finite_end  ,
SYMMETRIES_FINITE_END   
)

Variable Documentation

◆ PointGroups

POINT_GROUP PointGroups[]

◆ PointGroupRejectionReason

char* PointGroupRejectionReason = NULL