login
Number of Barlow packings with group P3(bar)m1(O) that repeat after 2n layers.
2

%I #8 Apr 15 2024 12:56:46

%S 2,3,8,16,40,73,165,320,666,1323,2709,5364,10880,21675,43577,87040,

%T 174590,348787,698709,1396736,2795400,5589672

%N Number of Barlow packings with group P3(bar)m1(O) that repeat after 2n layers.

%H J. E. Iglesias, <a href="https://doi.org/10.1524/zkri.2006.221.4.237">Enumeration of closest-packings by the space group: a simple approach</a>, Z. Krist. 221 (2006) 237-245

%H T. J. McLarnan, <a href="http://dx.doi.org/10.1524/zkri.1981.155.3-4.269">The numbers of polytypes in close packings and related structures</a>, Zeits. Krist. 155, 269-291 (1981)

%p # eq (6) in Iglesias Z Krist. 221 (2006)

%p b := proc(p,q)

%p local d;

%p a := 0 ;

%p for d from 1 to min(p,q) do

%p if modp(p,d)=0 and modp(q,d)=0 then

%p ph := floor(p/2/d) ;

%p qh := floor(q/2/d) ;

%p a := a+numtheory[mobius](d)*binomial(ph+qh,ph) ;

%p end if ;

%p end do:

%p a ;

%p end proc:

%p # eq (17) in Iglesias Z Krist. 221 (2006)

%p bt := proc(p,q)

%p if type(p+q,'odd') then

%p b(p,q) ;

%p else

%p 0;

%p end if;

%p end proc:

%p # corrected eq (15) in Iglesias Z Krist. 221 (2006), d|(p/2) and d|(q/2)

%p bbtemp := proc(p,q)

%p local d,ph,qh;

%p a := 0 ;

%p for d from 1 to min(p,q) do

%p if modp(p,2*d)=0 and modp(q,2*d)=0 then

%p ph := p/2/d ;

%p qh := q/2/d ;

%p a := a+numtheory[mobius](d)*binomial(ph+qh,ph) ;

%p end if ;

%p end do:

%p a ;

%p end proc:

%p # eq (16) in Iglesias Z Krist. 221 (2006)

%p bb := proc(p,q)

%p if type(p,'even') and type(q,'even') then

%p ( bbtemp(p,q)-bt(p/2,q/2) )/2 ;

%p else

%p 0 ;

%p end if;

%p end proc:

%p tt := proc(p,q)

%p if type(p+q,'odd') then

%p 0 ;

%p else

%p b(p,q)-bb(p,q);

%p end if;

%p end proc:

%p # eq (28) in Iglesias Z Krist. 221 (2006)

%p FracS := proc(Phalf)

%p if type(Phalf,'even') then

%p tt(Phalf,Phalf)/2 ;

%p else

%p (tt(Phalf,Phalf)-A045683(Phalf))/2 ;

%p end if;

%p end proc:

%p # eq (27)

%p A011952 := proc(n)

%p local a,p,q,P ;

%p P := 2*n ;

%p if type(P,'even') then

%p a := FracS(P/2) ;

%p for q from 0 to P do

%p p := P-q ;

%p if modp(p-q,3) = 0 and p < q then

%p a := a+tt(p,q) ;

%p end if;

%p end do:

%p a ;

%p else

%p 0;

%p end if;

%p end proc:

%p seq(A011952(n),n=4..40) ;# _R. J. Mathar_, Apr 15 2024

%K nonn,easy

%O 4,1

%A _N. J. A. Sloane_.