> (make block (center 0 0 0) (size sx pitch infinity)
> (material (make material-function (epsilon-func f)
> (polarizations
> (make polarizability
> (omega 0.59) (gamma 0.001) (delta-epsilon 0.35)))
This is an error. (I should probably fix libctl so that it returns an
error in this case; I hadn't noticed that it didn't.)
When you create a material-function, the *only* property that you should
specify is the material-func (or the epsilon-func): the function that,
given a position, returns the material (or the dielectric constant,
respectively) at that position.
Any additional properties that you pass (like the polarizations, in your
case) are ignored. (It should really return an error, grrr.) (Notice
that, in the Meep manual, material-function is a subclass of
material-type, not of dielectric.)
The right thing to do is *not* to use an epsilon-func, which returns the
dielectric constant epsilon at each point and only allows the dielectric
constant to vary, but to use a material-func, which can return an
arbitrary material (including polarizations) at each point.
That is, do something like
(make material-function (material-func my-material-func))
where my-material-func is defined as:
(define (my-material-func p)
(make dielectric
(epsilon (f p))
(polarizations
(make polarizability
(omega 0.59) (gamma 0.001) (delta-epsilon 0.35)))))
Steven
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss