1
; Copyright (C) 1998, 1999, 2000, 2001, 2002, Steven G. Johnson
3
; This file may be used without restriction. It is in the public
4
; domain, and is NOT restricted by the terms of any GNU license.
6
; This library is distributed in the hope that it will be useful,
7
; but WITHOUT ANY WARRANTY; without even the implied warranty of
8
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9
; Lesser General Public License for more details.
11
(define-class material-type no-parent
12
(define-property epsilon no-default 'number positive?)
13
(define-property conductivity 0.0 'number))
15
; use the solid geometry classes, variables, etcetera in libgeom:
16
; (one specifications file can include another specifications file)
17
(include "../utils/geom.scm")
19
; ****************************************************************
21
; Add some predefined variables, for convenience:
23
(define vacuum (make material-type (epsilon 1.0)))
26
(define infinity 1.0e20) ; big number for infinite dimensions of objects
28
(set! default-material air)
30
; ****************************************************************
32
(define-input-var k-points '() (make-list-type 'vector3))
34
(define-input-output-var dummy (vector3 3.7+1.1i 2.3-0.1i 19) 'cvector3)
36
(define-output-var mean-dielectric 'number)
38
(define-output-var gaps (make-list-type 'number))
40
; ****************************************************************
42
(define-external-function run-program true true
46
(set! interactive? #f) ; don't be interactive if we call (run)
49
(define-external-function energy-in-object false false
50
'number 'geometric-object)
52
(define-external-function list-func-test false false
53
(make-list-type 'vector3) 'number (make-list-type 'integer) 'vector3)
55
(define-external-function function-func false false 'number