Antiprism 0.23
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:
Collaboration graph
[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_setget_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_autosget_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:
geomgeometry to find the symmetry type for.
equiv_setsfor 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:
tsgroup 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:
typethe symmetry type.
nn-fold order, for a principal axis, otherwise 0.
postransformation that carries an object of this symmetry type onto the standard symetry type.
errmsgan 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:
namename of symmetry type to set up.
postransformation that carries an object of this symmetry type onto the standard symetry type.
errmsgan 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_axsymmetry type in symmetry axis form.
centcoordinates 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_symthe symmetry subgroup
conj_typeuse to select from inequivalent (non-conjugate) subgroups.
errmsgan 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:
subthe symmetry subgroup name and conjugation number, separated by a comma
errmsgan 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:
tsto 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_axissymmetry type in symmetry axis form.
centcoordinates 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:
geomgeometry to find the symmetry type for.
equiv_setsfor 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:
typethe symmetry type.
nn-fold order, for a principal axis, otherwise 0.
postransformation that carries an object of this symmetry type onto the standard symetry type.
errmsgan 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:
namename of symmetry type to set up.
postransformation that carries an object of this symmetry type onto the standard symetry type.
errmsgan 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: