1 Feb 2001 07:06

### Re: unit length

```On Wed, 31 Jan 2001, Kito Holliday wrote:
> If I define a system with basis vectors of non-uniform length e.g. an
> orthorhombic system, which vector does MPB assign length one.

None of them.  It leaves them the length you assigned them via the
"size" argument to (make lattice ...) (note that the lengths of the actual
basis1, basis2, basis3 vectors that you supply are ignored).

This implicitly determines the units of your results.  (e.g. suppose your
lattice size in 2d is 5 x 4.  That is, your cell is 5 x 4 "somethings",
and so your unit of distance is that same "something".  The manual also
discusses the issue of units.)

Steven

```
1 Feb 2001 19:43

### Re: unit length

```On Thu, 1 Feb 2001, Kito Holliday wrote:
> In the manual it says:
>
> ".......As has been mentioned already, (nearly) all 3-vectors in the program
> are specified in the basis of the unit vectors in the lattice directions,
> i.e. the unit-normalized lattice vectors....... "
>
> Suppose I define some arbitrary 3-vector as (2 2 2). This arbitrary 3-vector
> will be interpreted by MPB as R=2a+2b+2c were a,b,c are lattice vectors and 2
> is in units of  "A", correct?

Not quite.  It will be interpreted as R=2ahat+2bhat+2chat, where
ahat,bhat,chat are the unit vectors in the directions of the lattice
vectors a,b,c.

The reason I did it this way was so that the coordinate system doesn't
change if you are doing a supercell calculation and you change the size of
the supercell.  Also, this way if your lattice is orthogonal, 3-vectors
will be in the ordinary cartesian basis.

> In the manual it says:
>
> ".....That is, each component is multiplied by the corresponding basis
> vector and summed to compute the corresponding cartesian vector..... "
>
> By basis vector you mean (the basis of cartesian vectors), correct?

No, I mean the basis of the unit vectors in the lattice directions, as
described in the previous sentence of the manual.  (Here, I was just
trying to define "basis" in case some reader was not familiar with that
```

3 Feb 2001 22:29

### Test cases for magneto-optic materials?

```I recently implemented support in MPB for magneto-optic materials (e.g.
like what is used in Faraday rotation devices), which are represented by a
complex-Hermitian dielectric tensor.  (Note that this is quite different
from dissipative materials, which have a non-Hermitian epsilon.)

I'm posting in the hope that one of you works with these systems and has
good test cases at hand (i.e. ones in which the resulting eigenfrequencies
and fields are known) or references thereof, and/or wants to try it out.
The code works for the obvious case of a uniform material, of course, and
I can't see why it would then fail in more general cases, but more tests
would be good.

If you want to try it out, you can download a snapshot at:

http://superjdj.mit.edu/mpb/snapshots/mpb-20010120.tar.gz

Configure the code via './configure --with-hermitian-epsilon', and see the
new "epsilon-offdiag-imag" property of dielectric-anisotropic in the
doc/user-ref.html manual page.

Steven

```
7 Feb 2001 10:45

### honeycomb lattice

```I'm a student of politecnico di Bari (Italy), and i'm
using mpb software for my thesis.
May somebody send me the .ctl file for an honeycomb
lattice ?
Thanks Valerio.

v_agilulfo <at> yahoo.com

__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices.
http://auctions.yahoo.com/

```
7 Feb 2001 11:05

### Re: honeycomb lattice

```Hi Valerio,

In 2D you can use something like:

(set! geometry-lattice
(make lattice
(basis1 (/ (sqrt 3) 2) 1.5)
(basis2 (/ (sqrt 3) 2) -1.5)
(size (sqrt 3) (sqrt 3) 1)))

; Create periodic structure
(set! geometry
(geometric-objects-lattice-duplicates
(list
(make cylinder (center (/ 2 (sqrt 3)) (/ (sqrt 3)) 0) (radius r)
(height infinity) (material air))
(make cylinder (center (/ (sqrt 3)) (/ 2 (sqrt 3)) 0) (radius r)
(height infinity) (material air)))
(sqrt 3) (sqrt 3)))

Hope you can decipher it

Regards,
Theis

On Wed, Feb 07, 2001 at 01:45:04AM -0800, Valerio Catino wrote:
> I'm a student of politecnico di Bari (Italy), and i'm
> using mpb software for my thesis.
> May somebody send me the .ctl file for an honeycomb
> lattice ?
```

13 Feb 2001 20:49

### unique dielectric geometries

```Hi

I'm thinking about implementing some unique dielectric geometries and
would value your opinion on the best way to do this. I've played with
the idea of editing some of the geom.c or geom.scm files in the
libctlgeom directory, but I'm not sure this is the best way.

Thanks

Kito Holliday

```
14 Feb 2001 02:22

### Re: unique dielectric geometries

```Kito Holliday wrote:
>I'm thinking about implementing some unique dielectric geometries and
>would value your opinion on the best way to do this. I've played with
>the idea of editing some of the geom.c or geom.scm files in the
>libctlgeom directory, but I'm not sure this is the best way.

It is hard to advise you unless you are more specific.

If you want to add a new geometric shape, then editing the geom.c files is
one way.  However, if you're going to edit the source code then it is
probably a good idea to coordinate with me--otherwise, you'll have major
headaches each time I release a new version.  If a new shape type is likely
to be of general interest, I might be interested in incorporating it.

However, you should be aware of the alternatives:

1) Many shapes can be created by combining existing shapes.  e.g. a cube
with the corners cut off could be made by intersecting a solid cube with
air cubes or cylinders at each of the corners.  (Instead of air, the next
MPB will have a "nothing" material that is specifically designed to cut
holes through objects, leaving the background material.)  The only thing
you can't do this way is to make new kinds of curved surfaces (although you
could approximate these by many small shapes--band structures are usually
insensitive to small details, anyway).  You can write your own Scheme
routines, in your ctl file, to construct such combination shapes more
conveniently.

2) You can generate the dielectric function yourself by whatever method you
like, output it to a file, and read it into MPB with the epsilon-input-file
variable.  Note that you can still place MPB objects "on top" of the
```

14 Feb 2001 13:46

### Problems with Installation

```  I think I have installed all of the necessary files for mpb

when I type ./configure I get the output file that is attached

Then, when I type make I get:

../src/matrices/matrices.a(blasglue.o): In function 'lapackglue_potrf':
blasglue.o(.text+0x1f9): undefined reference to 'zpotrf_'
../src/matrices/matrices.a(blasglue.o): In function 'lapackglue_potri':
blasglue.o(.text+0x1f9): undefined reference to 'zpotri_'
../src/matrices/matrices.a(blasglue.o): In function 'lapackglue_hetrf':
blasglue.o(.text+0x1f9): undefined reference to 'zhetrf_'
../src/matrices/matrices.a(blasglue.o): In function 'lapackglue_hetri':
blasglue.o(.text+0x1f9): undefined reference to 'zhetri_'
../src/matrices/matrices.a(blasglue.o): In function 'lapackglue_heev':
blasglue.o(.text+0x1f9): undefined reference to 'zheev_'
../src/matrices/matrices.a(blasglue.o): In function 'lapackglue_syev':
blasglue.o(.text+0x1f9): undefined reference to 'dsyev_'
collect2: Id returned 1 exit status
make[1]: *** [blastest] Error 1
make[1]: Leaving directory '/usr/local/packages/mpb-0.13/tests'
make: *** [all-recursive] Error 1

I read a message that had a similar problem.  You said to change CC =
'gcc' to CC= 'cc'.  So I did.  Hoever, I still get this error.

I am using Slackware 7.1  Linux on a PIII computer.

Thanks for your time and efforts.

```

14 Feb 2001 23:12

### Re: Problems with Installation

```On Wed, 14 Feb 2001, Reginald E Bryant wrote:
> I think I have installed all of the necessary files for mpb
>
> Then, when I type make I get:
>  ../src/matrices/matrices.a(blasglue.o): In function 'lapackglue_potrf':
> blasglue.o(.text+0x1f9): undefined reference to 'zpotrf_'
> [...]

All of the functions that you report as missing are from LAPACK, so my
first guess would be that LAPACK is incorrectly installed.

The first thing to check would be if the configure script found
LAPACK; it should say:

checking for main in -llapack... yes

(I didn't get your configure output attachment.)  If it didn't, then you
didn't correctly install liblapack.a in /usr/local/lib (or whatever).
(You can also look in the config.log file to see if there was some other
error that occurred with this test.)

If it did find LAPACK, then your LAPACK library is broken.  Either you
have an old version that doesn't have the double-precision complex
routines (z*), or perhaps you used the incomplete LAPACK from ATLAS (if
you read ATLAS's installation instructions, you'll know you are supposed
to merge its LAPACK with the real library).

(There are a couple of other possibilities having to do with compiler
incompatibilities, but since you are using Linux on x86 everything is most
likely compiled with gcc/g77.)
```

21 Feb 2001 14:27

### Ovelapping spheres

Hi!

I am interested in the photonic band structure of an arrangement of coated spheres ( 1)  in which both inner and outer spheres overlap. In order to get that purpose, I have defined this geometry:

(set! geometry (list (make sphere ( center  0 0 0) (material dielectric1)
(make sphere ( center  0 0 0) (material dielectric2)

My question: Which dielectric distribution (2) or (3) will be generated? I am interested in type (2), so, if mpb code creates (3), do you have any suggestion?

(I hope the ascii figures will be clear enough!)

Thanks

--  Fernando López-Tejeira Dpto. Física Teórica de la Materia Condensada,C-V Facultad de Ciencias,Universidad Autónoma de Madrid  E-28049 Madrid, Spain   e-mail: flt <at> uamca3.fmc.uam.es   Tel.: 34-91-3978647   Fax:  34-91-3974950
```1                   ,*******;
*:::::::::*
*:::::::::::*
*:::::::::::*
*:::::::::::*
*:::::::::*
'*******'

2                   ,*******.,*******.
*::::::::::::::::::*
*::::::::::::::::::::*
*::::::::::::::::::::*
*::::::::::::::::::::*
*::::::::::::::::::*
'*******''*******'

3                   ,*******.,*******.
*:::::::::*::::::::*
*:::::::::*:*::::::::*
*:::::::::*:*::::::::*
*:::::::::*:*::::::::*
*:::::::::*::::::::*
'*******''*******'

```

Gmane