package PointGroupObject; use Exporter; @ISA = qw(Exporter); #公開したいサブルーチン @EXPORT = qw(); use strict; use Sci qw($pi); #======================================================== # 静的メンバー関数 #======================================================== #======================================================== # 変数取得関数 #======================================================== #======================================================== # コンストラクタ、デストラクタ #======================================================== sub new { my ($module) = @_; my $this = {}; bless $this; return $this; } sub DESTROY { my $this = shift; } #======================================================== # 一般関数 #======================================================== sub FindPointGroup { my ($this, $pHit, $pMArrays) = @_; my @MArrays; if(!$pMArrays) { @MArrays = $this->GetSymmetryOperationArraysInCartesian(); } else { @MArrays = @$pMArrays; } my @PGArrays = $this->GetPointGroupGenerators(); my %SymOp; for(my $is = 0 ; $is < @MArrays ; $is++) { if($pHit->[$is]) { $SymOp{$MArrays[$is]->{Name}} = 1; } } for(my $ip = 0 ; $ip < @PGArrays ; $ip++) { my $pGen = $PGArrays[$ip]{Generators}; my $IsHit = 1; for(my $ig = 0 ; $ig < @$pGen ; $ig++) { if(!$SymOp{$pGen->[$ig]}) { $IsHit = 0; last; } } return $PGArrays[$ip]{Name} if($IsHit); } return '1'; } sub GetSymmetryOperationArraysInCartesian { my $sin60 = sin( 60.0 * $pi / 180.0); my $cos60 = cos( 60.0 * $pi / 180.0); my $sin120 = sin(120.0 * $pi / 180.0); my $cos120 = cos(120.0 * $pi / 180.0); my @MArrays = ( { 'Matrix' => [ [-1, 0, 0, 0], [ 0, -1, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "i", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, 1, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "mx", 'Freedom' => [0, 1, 1], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, -1, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "my", 'Freedom' => [1, 0, 1], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, 1, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "mz", 'Freedom' => [1, 1, 0], }, { 'Matrix' => [ [ 0, 1, 0, 0], [ 1, 0, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "dxy", 'Freedom' => [1, 1, 1], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, 0, 1, 0], [ 0, 1, 0, 0] ], 'Name' => "dyz", 'Freedom' => [1, 1, 1], }, { 'Matrix' => [ [ 0, 0, 1, 0], [ 0, 1, 0, 0], [ 1, 0, 0, 0] ], 'Name' => "dzx", 'Freedom' => [1, 1, 1], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, -1, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "2x", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, 1, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "2y", 'Freedom' => [0, 1, 0], }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, -1, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "2z", 'Freedom' => [0, 0, 1], }, # { 'Matrix' => [ [-1, 0, 0, 0], # [ 0, -1, 0, 0], # [ 0, 0, -1, 0] ], # 'Name' => "S2x", # 'Identical' => 'i', # 'Freedom' => [0, 0, 0], # }, # { 'Matrix' => [ [-1, 0, 0, 0], # [ 0, -1, 0, 0], # [ 0, 0, -1, 0] ], # 'Name' => "S2y", # 'Freedom' => [0, 0, 0], # }, # { 'Matrix' => [ [-1, 0, 0, 0], # [ 0, -1, 0, 0], # [ 0, 0, -1, 0] ], # 'Name' => "S2z", # 'Identical' => 'i', # 'Freedom' => [0, 0, 0], # }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, 1, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "-2x", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, -1, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "-2y", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, 1, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "-2z", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-1, 0, 0, 0], [-1, 0, 1, 0], [ 0, 1, 0, 0] ], 'Name' => "2d011", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, 0, 1, 0], [ 0, 1, 0, 0] ], 'Name' => "2d0-11", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, 1, 0], [ 0, -1, 0, 0], [ 1, 0, 0, 0] ], 'Name' => "2d101", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, -1, 0], [ 0, -1, 0, 0], [-1, 0, 0, 0] ], 'Name' => "2d-101", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 1, 0, 0], [ 1, 0, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "2d110", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, -1, 0, 0], [-1, 0, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "2d-110", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, $cos120,-$sin120, 0], [ 0, $sin120, $cos120, 0] ], 'Name' => "3x", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [ $sin120, 0, $cos120, 0], [ 0, 1, 0, 0], [ $cos120, 0,-$sin120, 0] ], 'Name' => "3y", 'Freedom' => [0, 1, 0], }, { 'Matrix' => [ [ $cos120,-$sin120, 0, 0], [ $sin120, $cos120, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "3z", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, $cos120, $sin120, 0], [ 0,-$sin120, $cos120, 0] ], 'Name' => "3x^2", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [-$sin120, 0, $cos120, 0], [ 0, 1, 0, 0], [ $cos120, 0, $sin120, 0] ], 'Name' => "3y^2", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [ $cos120, $sin120, 0, 0], [-$sin120, $cos120, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "3z^2", 'Freedom' => [0, 0, 1], }, { 'Matrix' => [ [ -1, 0, 0, 0], [ 0, $cos120,-$sin120, 0], [ 0, $sin120, $cos120, 0] ], 'Name' => "S3x", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ $sin120, 0, $cos120, 0], [ 0, -1, 0, 0], [ $cos120, 0,-$sin120, 0] ], 'Name' => "S3y", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ $cos120,-$sin120, 0, 0], [ $sin120, $cos120, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "S3z", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ -1, 0, 0, 0], [ 0, $cos120,-$sin120, 0], [ 0, $sin120, $cos120, 0] ], 'Name' => "S3x^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-$sin120, 0, $cos120, 0], [ 0, -1, 0, 0], [ $cos120, 0, $sin120, 0] ], 'Name' => "S3y^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ $cos120, $sin120, 0, 0], [-$sin120, $cos120, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "S3z^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ -1, 0, 0, 0], [ 0,-$cos120, $sin120, 0], [ 0,-$sin120,-$cos120, 0] ], 'Name' => "-3x", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-$sin120, 0,-$cos120, 0], [ 0, -1, 0, 0], [-$cos120, 0, $sin120, 0] ], 'Name' => "-3y", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-$cos120, $sin120, 0, 0], [-$sin120,-$cos120, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "-3z", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ -1, 0, 0, 0], [ 0,-$cos120,-$sin120, 0], [ 0, $sin120,-$cos120, 0] ], 'Name' => "-3x^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ $sin120, 0,-$cos120, 0], [ 0, -1, 0, 0], [-$cos120, 0,-$sin120, 0] ], 'Name' => "-3y^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-$cos120,-$sin120, 0, 0], [ $sin120,-$cos120, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "-3z^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, 0, -1, 0], [ 0, 1, 0, 0] ], 'Name' => "4x", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [ 0, 0, 1, 0], [ 0, 1, 0, 0], [-1, 0, 0, 0] ], 'Name' => "4y", 'Freedom' => [0, 1, 0], }, { 'Matrix' => [ [ 0, -1, 0, 0], [ 1, 0, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "4z", 'Freedom' => [0, 0, 1], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, 0, 1, 0], [ 0, -1, 0, 0] ], 'Name' => "4x^3", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [ 0, 0, -1, 0], [ 0, 1, 0, 0], [ 1, 0, 0, 0] ], 'Name' => "4y^3", 'Freedom' => [0, 1, 0], }, { 'Matrix' => [ [ 0, 1, 0, 0], [-1, 0, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "4z^3", 'Freedom' => [0, 0, 1], }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, 0, -1, 0], [ 0, 1, 0, 0] ], 'Name' => "S4x", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, 1, 0], [ 0, -1, 0, 0], [-1, 0, 0, 0] ], 'Name' => "S4y", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, -1, 0, 0], [ 1, 0, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "S4z", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, 0, 1, 0], [ 0, -1, 0, 0] ], 'Name' => "S4x^3", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, -1, 0], [ 0, -1, 0, 0], [ 1, 0, 0, 0] ], 'Name' => "S4y^3", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 1, 0, 0], [-1, 0, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "S4z^3", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, 0, 1, 0], [ 0, -1, 0, 0] ], 'Name' => "-4x", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, -1, 0], [ 0, -1, 0, 0], [ 1, 0, 0, 0] ], 'Name' => "-4y", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 1, 0, 0], [-1, 0, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "-4z", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-1, 0, 0, 0], [ 0, 0, -1, 0], [ 0, 1, 0, 0] ], 'Name' => "-4x^3", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, 1, 0], [ 0, -1, 0, 0], [-1, 0, 0, 0] ], 'Name' => "-4y^3", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, -1, 0, 0], [ 1, 0, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "-4z^3", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, $cos60,-$sin60, 0], [ 0, $sin60, $cos60, 0] ], 'Name' => "6x", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [ $sin60, 0, $cos60, 0], [ 0, 1, 0, 0], [ $cos60, 0,-$sin60, 0] ], 'Name' => "6y", 'Freedom' => [0, 1, 0], }, { 'Matrix' => [ [ $cos60,-$sin60, 0, 0], [ $sin60, $cos60, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "6z", 'Freedom' => [0, 0, 1], }, { 'Matrix' => [ [ 1, 0, 0, 0], [ 0, $cos60, $sin60, 0], [ 0,-$sin60, $cos60, 0] ], 'Name' => "6x^5", 'Freedom' => [1, 0, 0], }, { 'Matrix' => [ [ $sin60, 0, $cos60, 0], [ 0, 1, 0, 0], [ $cos60, 0,-$sin60, 0] ], 'Name' => "6y^5", 'Freedom' => [0, 1, 0], }, { 'Matrix' => [ [ $cos60, $sin60, 0, 0], [-$sin60, $cos60, 0, 0], [ 0, 0, 1, 0] ], 'Name' => "6z^5", 'Freedom' => [0, 0, 1], }, { 'Matrix' => [ [ -1, 0, 0, 0], [ 0, $cos60,-$sin60, 0], [ 0, $sin60, $cos60, 0] ], 'Name' => "S6x", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ $sin60, 0, $cos60, 0], [ 0, -1, 0, 0], [ $cos60, 0,-$sin60, 0] ], 'Name' => "S6y", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ $cos60,-$sin60, 0, 0], [ $sin60, $cos60, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "S6z", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ -1, 0, 0, 0], [ 0, $cos60, $sin60, 0], [ 0,-$sin60, $cos60, 0] ], 'Name' => "S6x^5", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ $sin60, 0, $cos60, 0], [ 0, -1, 0, 0], [ $cos60, 0,-$sin60, 0] ], 'Name' => "S6y^5", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ $cos60, $sin60, 0, 0], [-$sin60, $cos60, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "S6z^5", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ -1, 0, 0, 0], [ 0,-$cos60, $sin60, 0], [ 0,-$sin60,-$cos60, 0] ], 'Name' => "-6x", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-$sin60, 0,-$cos60, 0], [ 0, -1, 0, 0], [-$cos60, 0, $sin60, 0] ], 'Name' => "-6y", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-$cos60, $sin60, 0, 0], [-$sin60,-$cos60, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "-6z", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ -1, 0, 0, 0], [ 0,-$cos60,-$sin60, 0], [ 0, $sin60,-$cos60, 0] ], 'Name' => "-6x^5", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-$sin60, 0,-$cos60, 0], [ 0, -1, 0, 0], [-$cos60, 0, $sin60, 0] ], 'Name' => "-6y^5", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [-$cos60,-$sin60, 0, 0], [ $sin60,-$cos60, 0, 0], [ 0, 0, -1, 0] ], 'Name' => "-6z^5", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, 1, 0], [ 1, 0, 0, 0], [ 0, 1, 0, 0] ], 'Name' => "3'_111", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 1, 0, 0], [ 0, 0, 1, 0], [ 1, 0, 0, 0] ], 'Name' => "3'111^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0,-1, 0, 0], [ 0, 0, 1, 0], [-1, 0, 0, 0] ], 'Name' => "3'_-111", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0,-1, 0], [-1, 0, 0, 0], [ 0, 1, 0, 0] ], 'Name' => "3'_-111^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0,-1, 0, 0], [ 0, 0, 1, 0], [-1, 0, 0, 0] ], 'Name' => "3'_1-11", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, 1, 0], [-1, 0, 0, 0], [ 0,-1, 0, 0] ], 'Name' => "3'_1-11^2", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 1, 0, 0], [ 0, 0, -1, 0], [-1, 0, 0, 0] ], 'Name' => "3'_11-1", 'Freedom' => [0, 0, 0], }, { 'Matrix' => [ [ 0, 0, -1, 0], [ 1, 0, 0, 0], [ 0, -1, 0, 0] ], 'Name' => "3'_11-1^2", 'Freedom' => [0, 0, 0], }, ); return @MArrays; } sub GetPointGroupGenerators { my @PGArrays = ( { 'Name' => "Oh", 'Generators' => ["3'_111", "3'_-111", "3'_1-11", "3'_11-1", '4x', '2x', '2d110'], }, { 'Name' => "O", 'Generators' => ["3'_111", "3'_-111", "3'_1-11", "3'_11-1", '4x', '2x', '2d110', 'i', 'mx', 'dxy'], }, { 'Name' => "Td", 'Generators' => ["3'_111", "3'_-111", "3'_1-11", "3'_11-1", 'S4x', 'dxy'], }, { 'Name' => "Th", 'Generators' => ["3'_111", "3'_-111", "3'_1-11", "3'_11-1", '2x', 'i'], }, { 'Name' => "T", 'Generators' => ["3'_111", "3'_-111", "3'_1-11", "3'_11-1", '2x'], }, { 'Name' => "S6", 'Generators' => ['S6z'], }, { 'Name' => "S6", 'Generators' => ['S6x'], }, { 'Name' => "S6", 'Generators' => ['S6y'], }, { 'Name' => "S4", 'Generators' => ['S4z'], }, { 'Name' => "S4", 'Generators' => ['S4x'], }, { 'Name' => "S4", 'Generators' => ['S4y'], }, { 'Name' => "S3", 'Generators' => ['S3z'], }, { 'Name' => "S3", 'Generators' => ['S3x'], }, { 'Name' => "S3", 'Generators' => ['S3y'], }, { 'Name' => "S2", 'Generators' => ['S2z'], }, { 'Name' => "S2", 'Generators' => ['S2x'], }, { 'Name' => "S2", 'Generators' => ['S2y'], }, { 'Name' => "D6d", 'Generators' => ['6z', 'S6z', '2x', 'dxy'], }, { 'Name' => "D6d", 'Generators' => ['6z', 'S6z', '2y', 'dxy'], }, { 'Name' => "D6d", 'Generators' => ['6x', 'S6x', '2y', 'dyz'], }, { 'Name' => "D6d", 'Generators' => ['6x', 'S6x', '2z', 'dyz'], }, { 'Name' => "D6d", 'Generators' => ['6y', 'S6y', '2z', 'dzx'], }, { 'Name' => "D6d", 'Generators' => ['6y', 'S6y', '2x', 'dzx'], }, { 'Name' => "D4d", 'Generators' => ['4z', 'S4z', '2x', '2y', 'dxy'], }, { 'Name' => "D4d", 'Generators' => ['4x', 'S4x', '2y', '2z', 'dyz'], }, { 'Name' => "D4d", 'Generators' => ['4y', 'S4y', '2z', '2x', 'dzx'], }, { 'Name' => "D3d", 'Generators' => ['3z', 'S2z', '2x', 'dxy'], }, { 'Name' => "D3d", 'Generators' => ['3z', 'S6z', '2x', 'dxy'], }, { 'Name' => "D3d", 'Generators' => ['3z', 'S6z', '2y', 'dxy'], }, { 'Name' => "D3d", 'Generators' => ['3x', 'S6x', '2y', 'dyz'], }, { 'Name' => "D3d", 'Generators' => ['3x', 'S6x', '2z', 'dyz'], }, { 'Name' => "D3d", 'Generators' => ['3y', 'S6y', '2z', 'dzx'], }, { 'Name' => "D3d", 'Generators' => ['3y', 'S6y', '2x', 'dzx'], }, { 'Name' => "D2d", 'Generators' => ['2z', 'S2z', '2x', 'dxy'], }, { 'Name' => "D2d", 'Generators' => ['2z', 'S2z', '2y', 'dxy'], }, { 'Name' => "D2d", 'Generators' => ['2x', 'S2x', '2y', 'dyz'], }, { 'Name' => "D2d", 'Generators' => ['2x', 'S2x', '2z', 'dyz'], }, { 'Name' => "D2d", 'Generators' => ['2y', 'S2y', '2z', 'dzx'], }, { 'Name' => "D2d", 'Generators' => ['2y', 'S2y', '2x', 'dzx'], }, { 'Name' => "D6h", 'Generators' => ['6z', '2x', 'mz'], }, { 'Name' => "D6h", 'Generators' => ['6z', '2y', 'mz'], }, { 'Name' => "D6h", 'Generators' => ['6x', '2y', 'mx'], }, { 'Name' => "D6h", 'Generators' => ['6x', '2z', 'mx'], }, { 'Name' => "D6h", 'Generators' => ['6y', '2z', 'my'], }, { 'Name' => "D6h", 'Generators' => ['6y', '2x', 'my'], }, { 'Name' => "D4h", 'Generators' => ['4z', '2x', '2y', 'mz'], }, { 'Name' => "D4h", 'Generators' => ['4x', '2y', '2z', 'mx'], }, { 'Name' => "D4h", 'Generators' => ['4y', '2z', '2x', 'my'], }, { 'Name' => "D3h", 'Generators' => ['3z', '2x', 'mz'], }, { 'Name' => "D3h", 'Generators' => ['3z', '2y', 'mz'], }, { 'Name' => "D3h", 'Generators' => ['3x', '2y', 'mx'], }, { 'Name' => "D3h", 'Generators' => ['3x', '2z', 'mx'], }, { 'Name' => "D3h", 'Generators' => ['3y', '2z', 'my'], }, { 'Name' => "D3h", 'Generators' => ['3y', '2x', 'my'], }, { 'Name' => "D2h", 'Generators' => ['2z', '2x', '2y', 'mz'], }, { 'Name' => "D2h", 'Generators' => ['2x', '2y', '2z', 'mx'], }, { 'Name' => "D2h", 'Generators' => ['2x', '2z', '2x', 'my'], }, { 'Name' => "C6h", 'Generators' => ['6z', 'mz'], }, { 'Name' => "C6h", 'Generators' => ['6x', 'mx'], }, { 'Name' => "C6h", 'Generators' => ['6y', 'my'], }, { 'Name' => "C4h", 'Generators' => ['4z', 'mz'], }, { 'Name' => "C4h", 'Generators' => ['4x', 'mx'], }, { 'Name' => "C4h", 'Generators' => ['4y', 'my'], }, { 'Name' => "C3h", 'Generators' => ['3z', 'mz'], }, { 'Name' => "C3h", 'Generators' => ['3x', 'mx'], }, { 'Name' => "C3h", 'Generators' => ['3y', 'my'], }, { 'Name' => "C2h", 'Generators' => ['2z', 'mz'], }, { 'Name' => "C2h", 'Generators' => ['2x', 'mx'], }, { 'Name' => "C2h", 'Generators' => ['2y', 'my'], }, { 'Name' => "C6v", 'Generators' => ['6z', 'mx'], }, { 'Name' => "C6v", 'Generators' => ['6z', 'my'], }, { 'Name' => "C6v", 'Generators' => ['6x', 'my'], }, { 'Name' => "C6v", 'Generators' => ['6x', 'mz'], }, { 'Name' => "C6v", 'Generators' => ['6y', 'mz'], }, { 'Name' => "C6v", 'Generators' => ['6y', 'mx'], }, { 'Name' => "C4v", 'Generators' => ['4z', 'mx', 'my'], }, { 'Name' => "C4v", 'Generators' => ['4x', 'my', 'mz'], }, { 'Name' => "C4v", 'Generators' => ['4y', 'my', 'mz'], }, { 'Name' => "C3v", 'Generators' => ['3z', 'mx'], }, { 'Name' => "C3v", 'Generators' => ['3z', 'my'], }, { 'Name' => "C3v", 'Generators' => ['3x', 'my'], }, { 'Name' => "C3v", 'Generators' => ['3x', 'mz'], }, { 'Name' => "C3v", 'Generators' => ['3y', 'mz'], }, { 'Name' => "C3v", 'Generators' => ['3y', 'mx'], }, { 'Name' => "C2v", 'Generators' => ['2z', 'mx'], }, { 'Name' => "C2v", 'Generators' => ['2z', 'my'], }, { 'Name' => "D6", 'Generators' => ['6z', '2x'], }, { 'Name' => "D6", 'Generators' => ['6z', '2y'], }, { 'Name' => "D6", 'Generators' => ['6x', '2y'], }, { 'Name' => "D6", 'Generators' => ['6x', '2z'], }, { 'Name' => "D6", 'Generators' => ['6y', '2z'], }, { 'Name' => "D6", 'Generators' => ['6y', '2x'], }, { 'Name' => "D4", 'Generators' => ['4z', '2x', '2y'], }, { 'Name' => "D4", 'Generators' => ['4x', '2y', '2z'], }, { 'Name' => "D4", 'Generators' => ['4y', '2y', '2z'], }, { 'Name' => "D3", 'Generators' => ['3z', '2x'], }, { 'Name' => "D3", 'Generators' => ['3z', 'C2y'], }, { 'Name' => "D3", 'Generators' => ['3x', '2y'], }, { 'Name' => "D3", 'Generators' => ['3x', '2z'], }, { 'Name' => "D3", 'Generators' => ['3y', '2z'], }, { 'Name' => "D3", 'Generators' => ['3y', '2x'], }, { 'Name' => "D2", 'Generators' => ['2z', '2x', '2y'], }, { 'Name' => "C6", 'Generators' => ['6x'], }, { 'Name' => "C6", 'Generators' => ['6y'], }, { 'Name' => "C6", 'Generators' => ['6z'], }, { 'Name' => "C4", 'Generators' => ['4x'], }, { 'Name' => "C4", 'Generators' => ['4y'], }, { 'Name' => "C4", 'Generators' => ['4z'], }, { 'Name' => "C3", 'Generators' => ['3x'], }, { 'Name' => "C3", 'Generators' => ['3y'], }, { 'Name' => "C3", 'Generators' => ['3z'], }, { 'Name' => "D3", 'Generators' => ["3'_111", "dxy", "2d-101"], }, { 'Name' => "D3", 'Generators' => ["3'_-111", "dxy", "2d-101"], }, { 'Name' => "D3", 'Generators' => ["3'_1-11", "dxy", "2d-101"], }, { 'Name' => "D3", 'Generators' => ["3'_11-1", "dxy", "2d-101"], }, { 'Name' => "C3v", 'Generators' => ["3'_111", "dxy"], }, { 'Name' => "C3v", 'Generators' => ["3'_-111", "dxy"], }, { 'Name' => "C3v", 'Generators' => ["3'_1-11", "dxy"], }, { 'Name' => "C3v", 'Generators' => ["3'_11-1", "dxy"], }, { 'Name' => "C3", 'Generators' => ["3'_111"], }, { 'Name' => "C3", 'Generators' => ["3'_-111"], }, { 'Name' => "C3", 'Generators' => ["3'_1-11"], }, { 'Name' => "C3", 'Generators' => ["3'_11-1"], }, { 'Name' => "C2", 'Generators' => ['2x'], }, { 'Name' => "C2", 'Generators' => ['2y'], }, { 'Name' => "C2", 'Generators' => ['2z'], }, { 'Name' => "Ci", 'Generators' => ['i'], }, ); return @PGArrays; } 1;