]> git.unchartedbackwaters.co.uk Git - francis/ofc.git/commitdiff
Update DSL examples to proposed syntax.
authorFrancis Russell <francis@unchartedbackwaters.co.uk>
Thu, 23 Aug 2012 15:59:59 +0000 (16:59 +0100)
committerFrancis Russell <francis@unchartedbackwaters.co.uk>
Thu, 23 Aug 2012 16:11:16 +0000 (17:11 +0100)
examples/integrals_grad.ofl [new file with mode: 0644]
examples/integrals_kinetic.ofl

diff --git a/examples/integrals_grad.ofl b/examples/integrals_grad.ofl
new file mode 100644 (file)
index 0000000..5d693d8
--- /dev/null
@@ -0,0 +1,20 @@
+# Parameter information
+Array[SpatialIndex, FunctionIndex, FunctionIndex] kinet
+FunctionSet bra, ket
+FunctionIndex alpha, beta
+SpatialIndex i
+
+# Computation
+kinet[i, alpha, beta] = inner(bra[alpha], derivative(ket[beta], i))
+
+# Implementation specific
+target ONETEP
+Variable kinet        = FortranVariable("kinet", spam3(:))
+Variable bra_basis    = FortranVariable("bra_basis", func_basis)
+Variable bras_on_grid = FortranVariable("bras_on_grid", double(:))
+Variable ket_basis    = FortranVariable("ket_basis", func_basis)
+Variable kets_on_grid = FortranVariable("kets_on_grid", double(:))
+Variable bra          = PPDFunctionSet(bras_on_grid, bra_basis)
+Variable ket          = PPDFunctionSet(kets_on_grid, ket_basis)
+
+FortranFunction("integrals_grad", kinet, bras_on_grid, bra_basis, kets_on_grid, ket_basis)
index c4ad090af33614887b725c3096cfc76c77d3ec6c..4d55296f3be2111d95ad66c6cea9e901c6e765db 100644 (file)
@@ -1,14 +1,19 @@
 # Parameter information
-Matrix kinet
+Array[FunctionIndex, FunctionIndex] kinet
 FunctionSet bra, ket
-Index alpha, beta
+FunctionIndex alpha, beta
 
 # Computation
 kinet[alpha, beta] = inner(bra[alpha], laplacian(ket[beta])*-0.5)
 
 # Implementation specific
 target ONETEP
-kinet is SPAM3("kinet")
-bra is PPDFunctionSet("bra_basis", "bras_on_grid")
-ket is PPDFunctionSet("ket_basis", "kets_on_grid")
-output is FortranFunction("integrals_kinetic", ["kinet", "bras_on_grid", "bra_basis", "kets_on_grid", "ket_basis"])
+Variable kinet        = FortranVariable("kinet", spam3)
+Variable bra_basis    = FortranVariable("bra_basis", func_basis)
+Variable bras_on_grid = FortranVariable("bras_on_grid", double(:))
+Variable ket_basis    = FortranVariable("ket_basis", func_basis)
+Variable kets_on_grid = FortranVariable("kets_on_grid", double(:))
+Variable bra          = PPDFunctionSet(bras_on_grid, bra_basis)
+Variable ket          = PPDFunctionSet(kets_on_grid, ket_basis)
+
+FortranFunction("integrals_kinetic", kinet, bras_on_grid, bra_basis, kets_on_grid, ket_basis)