Antiprism 0.23

- Main Page
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions

# sch_sym Class Reference

Class for symmetry elements in Schoenflies notation. More...

`#include <symmetry.h>`

Collaboration diagram for sch_sym:
[legend]

List of all members.

## Public Types
enum |
| Schoenflies symmetry type identifiers.
## Public Member Functions
| sch_sym (const geom_if &geom, vector< vector< set< int > > > *equiv_sets=0)
| Constructor.
| sch_sym (const t_set &ts)
| Constructor.
| sch_sym (int type=0, int n=0, const mat3d &pos=mat3d(), char *errmsg=0)
| Constructor.
| sch_sym (const string &name, const mat3d &pos=mat3d(), char *errmsg=0)
| Constructor.
| sch_sym (const sch_axis &sym_ax, const vec3d &cent=vec3d::zero)
| Constructor.
bool | init (const geom_if &geom, vector< vector< set< int > > > *equiv_sets=0)
| Initialiser.
bool | init (int type, int n=0, const mat3d &pos=mat3d(), char *errmsg=0)
| Initialiser.
bool | init (const string &name, const mat3d &pos=mat3d(), char *errmsg=0)
| Initialiser.
void | init (const sch_axis &sym_axis, const vec3d &cent=vec3d::zero)
| Initialiser.
int | get_sym_type () const
| Get the symmetry type.
int | get_nfold () const
| Get the n-fold order of the axis with highest n.
string | get_symbol () const
| Get the Schoenflies symbol for the symmetry type.
mat3d | get_to_std () const
| Get the tranformation to standard symmetry type.
t_set & | get_trans (t_set &ts) const
| Get the symmetry transformations.
t_set | get_trans () const
| Get the symmetry transformations.
const set< sch_sym > & | get_sub_syms () const
| Get the symmetry subgroups.
sch_sym_autos & | get_autos ()
| Get the Euclidean outer automorphisms.
sch_sym | get_sub_sym (const sch_sym &sub_sym, int conj_type=0, char *errmsg=0) const
| Get a symmetry subgroup.
sch_sym | get_sub_sym (const string &sub, char *errmsg) const
| Get a symmetry subgroup.
const set< sch_axis > & | get_axes () const
| Get the axes or mirrors.
const set< vec3d > & | get_mirrors () const
| Get the mirrors.
bool | has_inversion_symmetry () const
| Is an inversion a symmetry.
bool | is_set () const
| Check if a valid symmetry type is set.

## Detailed Description

Class for symmetry elements in Schoenflies notation.

## Constructor & Destructor Documentation

sch_sym::sch_sym | ( | const geom_if & | geom,
|  | vector< vector< set< int > > > * | equiv_sets = `0`
| ) |  |

Constructor.

Find the symmetry in Schoenflies notation.

Parameters:

  geom | geometry to find the symmetry type for.
  equiv_sets | for the vertices, edges and faces set up a vector of sets of equivalent elements.

sch_sym::sch_sym | ( | const t_set & | ts | ) |

Constructor.

Find the symmetry in Schoenflies notation.

Parameters:

  ts | group of transformations to find the symmetry type for.

sch_sym::sch_sym | ( | int | type = `0`,
|  | int | n = `0`,
|  | const mat3d & | pos = `mat3d()`,
|  | char * | errmsg = `0`
| ) |  |

Constructor.

Parameters:

  type | the symmetry type.
  n | n-fold order, for a principal axis, otherwise 0.
  pos | transformation that carries an object of this symmetry type onto the standard symetry type.
  errmsg | an array at least `MSG_SZ` chars long to return any error message.

sch_sym::sch_sym | ( | const string & | name,
|  | const mat3d & | pos = `mat3d()`,
|  | char * | errmsg = `0`
| ) |  |

Constructor.

Parameters:

  name | name of symmetry type to set up.
  pos | transformation that carries an object of this symmetry type onto the standard symetry type.
  errmsg | an array at least `MSG_SZ` chars long to return any error message.

sch_sym::sch_sym | ( | const sch_axis & | sym_ax,
|  | const vec3d & | cent = `vec3d::zero`
| ) |  |

Constructor.

Parameters:

  sym_ax | symmetry type in symmetry axis form.
  cent | coordinates of symmetry centre

## Member Function Documentation

sch_sym_autos & sch_sym::get_autos | ( |  | ) |

Get the Euclidean outer automorphisms.

These map the symmetry transformations onto themselves, with one example included from each conjugacy class, the first value in the returned transformations is always the identity.

Returns:
  The symmetry automorphisms.

const set< sch_axis > & sch_sym::get_axes | ( |  | ) | const

Get the axes or mirrors.

Returns:
  The symmetry axes or mirrors.

const set< vec3d > & sch_sym::get_mirrors | ( |  | ) | const

Get the mirrors.

Returns:
  The mirror normals.

int sch_sym::get_nfold | ( |  | ) | const`[inline]`

Get the n-fold order of the axis with highest n.

This value is used in conjunction with `get_sym_type()` to describe principal axis symmetry types. If the symmetry type is `sym_S` and the axis has rotational n-fold symmetry then 2n is returned.

Returns:
  the n-fold order of the axis.

sch_sym sch_sym::get_sub_sym | ( | const sch_sym & | sub_sym,
|  | int | conj_type = `0`,
|  | char * | errmsg = `0`
| ) |  | const

Get a symmetry subgroup.

Parameters:

  sub_sym | the symmetry subgroup
  conj_type | use to select from inequivalent (non-conjugate) subgroups.
  errmsg | an array at least `MSG_SZ` chars long to return any error message.

Returns:
  the sub-symmetry, if the symmetry type is 'unknown' the error is detailed in errmsg.

sch_sym sch_sym::get_sub_sym | ( | const string & | sub,
|  | char * | errmsg
| ) |  | const

Get a symmetry subgroup.

Parameters:

  sub | the symmetry subgroup name and conjugation number, separated by a comma
  errmsg | an array at least `MSG_SZ` chars long to return any error message.

Returns:
  the sub-symmetry, if the symmetry type is 'unknown' the error is detailed in errmsg.

const set< sch_sym > & sch_sym::get_sub_syms | ( |  | ) | const

Get the symmetry subgroups.

Only one example is included from each conjugacy class

Returns:
  The symmetry subgroups.

int sch_sym::get_sym_type | ( |  | ) | const`[inline]`

Get the symmetry type.

Returns:
  the symmetry type of the axis as the Schoenflies identifier.

string sch_sym::get_symbol | ( |  | ) | const

Get the Schoenflies symbol for the symmetry type.

Returns:
  The symbol.

mat3d sch_sym::get_to_std | ( |  | ) | const`[inline]`

Get the tranformation to standard symmetry type.

Returns:
  The transformation that carries an object with the symmetry type onto the standard set of symmetries for that type.

t_set & sch_sym::get_trans | ( | t_set & | ts | ) | const

Get the symmetry transformations.

Parameters:

  ts | to return the set of symmetry transformations for this symmetry type.

t_set sch_sym::get_trans | ( |  | ) | const

Get the symmetry transformations.

Returns:
  The set of symmetry transformations for this symmetry type.

bool sch_sym::has_inversion_symmetry | ( |  | ) | const

Is an inversion a symmetry.

Returns:
  `true` if an inversion is a symmetry, otherwise `false`

void sch_sym::init | ( | const sch_axis & | sym_axis,
|  | const vec3d & | cent = `vec3d::zero`
| ) |  |

Initialiser.

Parameters:

  sym_axis | symmetry type in symmetry axis form.
  cent | coordinates of symmetry centre

bool sch_sym::init | ( | const geom_if & | geom,
|  | vector< vector< set< int > > > * | equiv_sets = `0`
| ) |  |

Initialiser.

Find the symmetry in Schoenflies notation.

Parameters:

  geom | geometry to find the symmetry type for.
  equiv_sets | for the vertices, edges and faces set up a vector of sets of equivalent elements

Returns:
  true if the symmetry type could be determined, otherwise false.

bool sch_sym::init | ( | int | type,
|  | int | n = `0`,
|  | const mat3d & | pos = `mat3d()`,
|  | char * | errmsg = `0`
| ) |  |

Initialiser.

Parameters:

  type | the symmetry type.
  n | n-fold order, for a principal axis, otherwise 0.
  pos | transformation that carries an object of this symmetry type onto the standard symetry type.
  errmsg | an array at least `MSG_SZ` chars long to return any error message.

Returns:
  true if the symmetry specification was valid, otherwise false and the error is detailed in errmsg.

bool sch_sym::init | ( | const string & | name,
|  | const mat3d & | pos = `mat3d()`,
|  | char * | errmsg = `0`
| ) |  |

Initialiser.

Parameters:

  name | name of symmetry type to set up.
  pos | transformation that carries an object of this symmetry type onto the standard symetry type.
  errmsg | an array at least `MSG_SZ` chars long to return any error message.

Returns:
  true if the symmetry type name was valid, otherwise false and the error is detailed in errmsg.

bool sch_sym::is_set | ( |  | ) | const`[inline]`

Check if a valid symmetry type is set.

Returns:
  `true` if set to valid type, otherwise `false`

The documentation for this class was generated from the following files:

- base/symmetry.h
- base/symmetry.cc