pyblock.symmetry

pyblock.symmetry.symmetry

Symmetry related data structures.

class pyblock.symmetry.symmetry.DirectProdGroup(*args)

Bases: object

Irreducible representation for symmetry formed by direct product of sub-symmetries.

Attributes:
irs : list(Group)
A list of irreducible representations for sub-symmetries.
ng : int
Number of sub-symmetries.
sub_group(idx)

Return a subgroup of this object, given a list of indices.

class pyblock.symmetry.symmetry.HashIrrep(ir)

Bases: object

Base class for irreducible representation, supporting hashing.

class pyblock.symmetry.symmetry.PGC1(ir)

Bases: pyblock.symmetry.symmetry.PointGroup

\(C_1\) point group.

Cached = [None]
InverseElem = array([0])
IrrepNames = ['A']
Table = array([[0]])
class pyblock.symmetry.symmetry.PGC2(ir)

Bases: pyblock.symmetry.symmetry.PGCI

\(C_2\) point group.

IrrepNames = ['A', 'B']
class pyblock.symmetry.symmetry.PGC2H(ir)

Bases: pyblock.symmetry.symmetry.PGC2V

\(C_{2h}\) point group.

IrrepNames = ['Ag', 'Au', 'Bu', 'Bg']
class pyblock.symmetry.symmetry.PGC2V(ir)

Bases: pyblock.symmetry.symmetry.PointGroup

\(D_{c2v}\) point group.

Cached = [None, None, None, None]
InverseElem = array([0, 1, 2, 3])
IrrepNames = ['A1', 'B1', 'B2', 'A2']
Table = array([[0, 1, 2, 3], [1, 0, 3, 2], [2, 3, 0, 1], [3, 2, 1, 0]])
class pyblock.symmetry.symmetry.PGCI(ir)

Bases: pyblock.symmetry.symmetry.PointGroup

\(C_i\) point group.

Cached = [None, None]
InverseElem = array([0, 1])
IrrepNames = ['Ag', 'Au']
Table = array([[0, 1], [1, 0]])
class pyblock.symmetry.symmetry.PGCS(ir)

Bases: pyblock.symmetry.symmetry.PGCI

\(C_s\) point group.

IrrepNames = ["A'", "A''"]
class pyblock.symmetry.symmetry.PGD2(ir)

Bases: pyblock.symmetry.symmetry.PGC2V

\(D_2\) point group.

IrrepNames = ['A1', 'B3', 'B2', 'B1']
class pyblock.symmetry.symmetry.PGD2H(ir)

Bases: pyblock.symmetry.symmetry.PointGroup

\(D_{2h}\) point group.

Cached = [None, None, None, None, None, None, None, None]
InverseElem = array([0, 1, 2, 3, 4, 5, 6, 7])
IrrepNames = ['Ag', 'B3u', 'B2u', 'B1g', 'B1u', 'B2g', 'B3g', 'Au']
Table = array([[0, 1, 2, 3, 4, 5, 6, 7], [1, 0, 3, 2, 5, 4, 7, 6], [2, 3, 0, 1, 6, 7, 4, 5], [3, 2, 1, 0, 7, 6, 5, 4], [4, 5, 6, 7, 0, 1, 2, 3], [5, 4, 7, 6, 1, 0, 3, 2], [6, 7, 4, 5, 2, 3, 0, 1], [7, 6, 5, 4, 3, 2, 1, 0]])
class pyblock.symmetry.symmetry.ParticleN(ir)

Bases: pyblock.symmetry.symmetry.HashIrrep

Irreducible representation for particle number symmetry.

CachedM = []
CachedP = []
static clebsch_gordan(a, b, c)
multiplicity
class pyblock.symmetry.symmetry.PointGroup(ir)

Bases: pyblock.symmetry.symmetry.HashIrrep

Base class for irreducible representation for point group symmetry.

Attributes:
Table : rank-2 numpy.ndarray
Mutiplication table of the group.
InverseElem : rank-1 numpy.ndarray
Inverse Element of each element in the group.
IrrepNames : list(str)
Name of each irreducible representation in the group.
InverseElem = array([], dtype=int64)
IrrepNames = []
Table = array([], shape=(0, 0), dtype=int64)
static clebsch_gordan(a, b, c)
multiplicity
class pyblock.symmetry.symmetry.SU2(s)

Bases: pyblock.symmetry.symmetry.HashIrrep

Irreducible representation for SU(2) spin symmetry.

Cached = []
static clebsch_gordan(a, b, c)

Return rank-3 numpy.ndarray for CG coefficients with all possible projected quantum numbers.

j

SU(2) spin quantum number.

multiplicity
to_multi()
class pyblock.symmetry.symmetry.SU2Proj(s, sz)

Bases: pyblock.symmetry.symmetry.SU2

Irreducible representation for SU(2) spin symmetry with extra projected spin label.

Cached = []
copy()
jz

SU(2) projected spin quantum number.

multiplicity
static random_from_multi(multi)
to_multi()
class pyblock.symmetry.symmetry.SZ(sz)

Bases: pyblock.symmetry.symmetry.HashIrrep

Irreducible representation for projected spin symmetry.

CachedM = []
CachedP = []
static clebsch_gordan(a, b, c)
multiplicity
pyblock.symmetry.symmetry.point_group(pg_name)

Return point group class corresponding to the point group name.

pyblock.symmetry.cg

Clebsch-Gordan coefficients.

class pyblock.symmetry.cg.CG

Bases: object

Precomputed numerical constants.

Attributes:
NSqrtFact : int
Number of constants to generate.
SqrtFact : [float]
A list of size NSqrtFact, with element at index \(i\) being \(\sqrt{i!}\).
NSqrtFact = 200
SqrtFact = [1.0, 1.0, 1.4142135623730951, 2.4494897427831783, 4.898979485566357, 10.954451150103324, 26.832815729997478, 70.9929573971954, 200.79840636817815, 602.3952191045345, 1904.9409439665055, 6317.974358922329, 21886.105181141756, 78911.47445080469, 295259.7012800765, 1143535.9058639132, 4574143.623455653, 18859677.306253154, 80014834.28544986, 348776576.6344295, 1559776268.6284986, 7147792818.185868, 33526120082.371723, 160785623545.4059, 787685471322.9384, 3938427356614.692, 20082117944245.96, 104349745809073.98, 552166953567228.56, 2973510046012911.0, 1.6286585271694958e+16, 9.067986906793549e+16, 5.129628026803635e+17, 2.9467469553410734e+18, 1.7182339742875652e+19, 1.016520927791757e+20, 6.099125566750542e+20, 3.709953246501409e+21, 2.28696877430935e+22, 1.4282115417961528e+23, 9.032802905233224e+23, 5.78381592144527e+24, 3.748341123420972e+25, 2.4579516484946122e+26, 1.6304206741784305e+27, 1.0937194378152021e+28, 7.417966136220958e+28, 5.085501366740237e+29, 3.523338699662022e+30, 2.4663370897634156e+31, 1.743963680863606e+32, 1.2454391808865588e+33, 8.980989654316716e+33, 6.538259159791714e+34, 4.804619624270389e+35, 3.5632012788584193e+36, 2.666455677120592e+37, 2.013129889124823e+38, 1.5331540468207618e+39, 1.1776379687564844e+40, 9.12194448171079e+40, 7.124466393192019e+41, 5.609810447812648e+42, 4.452649004137246e+43, 3.5621192033097967e+44, 2.8718723147247465e+45, 2.333120097803461e+46, 1.9097411059666882e+47, 1.574812859496909e+48, 1.3081378078327272e+49, 1.094466613011557e+50, 9.222139602976429e+50, 7.825244940376377e+51, 6.685892207860282e+52, 5.751421947239992e+53, 4.9808775141931966e+54, 4.3422283469044446e+55, 3.810289910601107e+56, 3.365156932181069e+57, 2.9910169058002633e+58, 2.6752468492881897e+59, 2.4077221643593707e+60, 2.18028515039039e+61, 1.9863343046226287e+62, 1.8205054612841334e+63, 1.6784231035053562e+64, 1.5565055535934573e+65, 1.4518117296604024e+66, 1.3619201234191327e+67, 1.28483287477043e+68, 1.2188994890809342e+69, 1.1627560052213894e+70, 1.1152763807523816e+71, 1.0755335917960174e+72, 1.042768505784838e+73, 1.0163650175128552e+74, 9.958302741285535e+74, 9.807790764615758e+75, 9.709217501366035e+76, 9.66054943799493e+77, 9.660549437994932e+78, 9.708732028353838e+79, 9.805338706559366e+80, 9.95133192918726e+81, 1.0148407138632953e+83, 1.039902283024848e+84, 1.0706449288791818e+85, 1.1074837259283488e+86, 1.1509308491181515e+87, 1.2016070835354184e+88, 1.2602561412358772e+89, 1.327762234396748e+90, 1.4051714689748987e+91, 1.4937177607097716e+92, 1.5948541417547213e+93, 1.710290528972495e+94, 1.842039273319627e+95, 1.9924701154117024e+96, 2.1643765498993683e+97, 2.3610560690520687e+98, 2.586407337108586e+99, 2.845048070819445e+100, 3.142458305345292e+101, 3.4851548555301434e+102, 3.880904200712949e+103, 4.338982803479321e+104, 4.870496117317052e+105, 5.488770370909736e+106, 6.209834799433722e+107, 7.053016533709026e+108, 8.041676124552938e+109, 9.204119018612712e+110, 1.0574727661722569e+112, 1.2195370868041227e+113, 1.411716241374845e+114, 1.6402660477245914e+115, 1.9128624838060237e+116, 2.2389481343423286e+117, 2.630168525516852e+118, 3.100922958885159e+119, 3.6690615252019864e+120, 4.356769168863748e+121, 5.191689645855348e+122, 6.208357848239801e+123, 7.450029417887761e+124, 8.971023385028039e+125, 1.083972879914858e+127, 1.3142472714275038e+128, 1.598850811637179e+129, 1.9516461353510194e+130, 2.390268595042376e+131, 2.937211223973046e+132, 3.621237199747418e+133, 4.479223040992357e+134, 5.5585696126317876e+135, 6.920363358569688e+136, 8.643531064491464e+137, 1.083031338155279e+139, 1.3613492826948325e+140, 1.716596129698258e+141, 2.1713414369905214e+142, 2.7551234190045317e+143, 3.5066996146511464e+144, 4.477054362575133e+145, 5.733427060261861e+146, 7.364720406187589e+147, 9.488778480804807e+148, 1.2262204185483942e+150, 1.58936331434106e+151, 2.066172308643378e+152, 2.693959096814204e+153, 3.522808638313566e+154, 4.62012021572425e+155, 6.076819373438455e+156, 8.015875288043762e+157, 1.0604006276336018e+159, 1.4067804037272116e+160, 1.871599597838781e+161, 2.4970253096918963e+162, 3.340792175676754e+163, 4.482143042107585e+164, 6.030106741372272e+165, 8.135058752612967e+166, 1.1004903500825924e+168, 1.4927777395010379e+169, 2.0303972399920127e+170, 2.7690926476069663e+171, 3.7866772440000606e+172, 5.192030253612592e+173, 7.1378614943041415e+174, 9.838863082315585e+175, 1.3597579310207216e+177, 1.884135858018101e+178, 2.6175251876030417e+179, 3.645790713824437e+180, 5.0910696677188154e+181, 7.127497534806342e+182, 1.0003919511075688e+184, 1.4076762520426352e+185, 1.9857717232411065e+186]
class pyblock.symmetry.cg.SU2CG

Bases: object

SU(2) Clebsch-Gordan coefficients.

static clebsch_gordan(ja, jb, jc, ma, mb, mc)
static sqrt_delta(ja, jb, jc)
static wigner_3j(ja, jb, jc, ma, mb, mc)

pyblock.symmetry.basis

Basis transformation for site operators.

pyblock.symmetry.basis.basis_transform(mat, q_label, old_basis, new_basis)

Transform the matrix representation of an site operator from one basis to another basis, using Wigner-Eckart theorem.