sc::PointGroup(3)
π« sc::PointGroup(3) β the MPQC glow-up edition π«
okay bestie, so this is the sc::PointGroup(3) man page from MPQC, and i'm gonna walk you through it like we're texting at 2am, except i'm actually teaching you C++ symmetry stuff and it's gonna slay. π
so basically PointGroup is the class, and honestly? it's a place holder for a CharacterTable. that's the whole vibe. it's giving "i'm the main character but my bestie does the actual work." π
β¨ SYNOPSIS β¨
#include <pointgrp.h>
and like, it inherits sc::SavableState β so yes, it's part of the SavableState family tree, periodt. π
πΈ Public Member Functions πΈ
PointGroup(const char *)β this constructor takes a string with the Schoenflies symbol of the point group as its only argument. that's it. that's the whole constructor. iconic. β¨PointGroup(const char *, SymmetryOperation &)β like the one above but it also takes a frame of reference as an argument. lowkey flexing. πͺPointGroup(const char *, SymmetryOperation &, const SCVector3 &)β like the above, but also takes a point of origin. we love an overachiever. π«ΆPointGroup(const Ref< KeyVal > &)β thePointGroupKeyVal constructor, and it's looking for three keywords:symmetry,symmetry_frame, andorigin. bestie it's literally in the name. π₯PointGroup(StateIn &)β aStateInconstructor, iykyk. π¦PointGroup(const PointGroup &)β copy constructor, classic. π§PointGroup(const Ref< PointGroup > &)β copy constructor but make it aRef. πPointGroup & operator=(const PointGroup &)β assignment operator, standard queen behavior. πint equiv(const Ref< PointGroup > &, double tol=1.0e-6) constβ returns1if the point groups are equivalent,0otherwise. note thetol=1.0e-6default, don't lose it bestie. βCharacterTable char_table() constβ returns theCharacterTablefor this point group. the whole point, honestly. πΈconst char * symbol() constβ returns the Schoenflies symbol for this point group. the name tag. πSymmetryOperation & symm_frame()β returns the frame of reference for this point group. spatial awareness πconst SymmetryOperation & symm_frame() constβ a const version of the above. same energy, different signature. β¨SCVector3 & origin()β returns the origin of the symmetry frame. π¦const SCVector3 & origin() constβ and the const version, obviously. πvoid set_symbol(const char *)β sets (or resets) the Schoenflies symbol. rebranding era. πvoid save_data_state(StateOut &so)β saves the base classes (withsave_data_state) and the members in the same order that theStateInCTOR initializes them. that ordering thing is real, don't play with it. π₯void print(std::ostream &o=ExEnv::out0()) constβ prints the object. note the defaultExEnv::out0(), keep that. π
π Additional Inherited Members π
these members are inherited β they're not redefined here, they come from the base classes. no cap.
π Detailed Description π
okay so fr fr: the PointGroup class is really a place holder for a CharacterTable. it literally just vibes there and holds the good stuff. π
here's what it actually contains, bestie:
- a string representation of the Schoenflies symbol of a point group πΈ
- a frame of reference for the symmetry operation transformation matrices π
- a point of origin π¦
β οΈ important caveat, don't skip this: the origin is not respected by the symmetry operations. so if you want to use a point group with a nonzero origin, you have to first translate all your coordinates to the origin and then set the origin to zero. that's the rule. don't fight it. π
β¨ Constructor & Destructor Documentation β¨
π
sc::PointGroup::PointGroup(const Ref< KeyVal > &)
the PointGroup KeyVal constructor is looking for three keywords: symmetry, symmetry_frame, and origin. let's break them down bestie:
symmetryβ a string containing the Schoenflies symbol of the point group β¨originβ an array of doubles which gives the x, y, and z coordinates of the origin of the symmetry frame πsymmetry_frameβ a 3 by 3 array of arrays of doubles which specify the principal axes for the transformation matrices as a unitary rotation π
for example, a simple input which will use the default origin and symmetry_frame β that's (0,0,0) and the unit matrix, respectively β might look like this:
pointgrp<PointGroup>: (
symmetry = 'c2v'
)
by default, the principal rotation axis is taken to be the z axis. π«
but like β if you already have a set of coordinates which assume that the rotation axis is the x axis, then you'll have to rotate your frame of reference with symmetry_frame:
pointgrp<PointGroup>: (
symmetry = 'c2v'
symmetry_frame = [
[ 0 0 1 ]
[ 0 1 0 ]
[ 1 0 0 ]
]
)
that's the whole move. swap the axes, keep the vibe. π¦
π₯ Member Function Documentation π₯
π void sc::PointGroup::save_data_state(StateOut &) [virtual]
okay so this one: save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. π₯
must-know: this must be implemented by the derived class if the class has data. so like, if your derived class has data, you have to do this. no skipping. π
Reimplemented from sc::SavableState. periodt. π
π Author π
Generated automatically by Doxygen for MPQC from the source code. (yes bestie, the docs wrote themselves, we're just here for the vibe check π)
and that's the whole page!! π«Ά so anyway, this was rendered for MPQC, Version 2.3.1, dated Sun Oct 4 2020, and it's the sc::PointGroup(3) manual page. mwah, go read your character tables bestie πβ¨πΈ
π¦ where this page comes from
- ubuntu jammy: libsc-doc 2.3.1-21
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms