From 8845342e0803421d71358b4f0b7bd844ef0e6a9b Mon Sep 17 00:00:00 2001 From: Francis Russell Date: Thu, 23 Aug 2012 16:59:59 +0100 Subject: [PATCH] Update DSL examples to proposed syntax. --- examples/integrals_grad.ofl | 20 ++++++++++++++++++++ examples/integrals_kinetic.ofl | 17 +++++++++++------ 2 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 examples/integrals_grad.ofl diff --git a/examples/integrals_grad.ofl b/examples/integrals_grad.ofl new file mode 100644 index 0000000..5d693d8 --- /dev/null +++ b/examples/integrals_grad.ofl @@ -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) diff --git a/examples/integrals_kinetic.ofl b/examples/integrals_kinetic.ofl index c4ad090..4d55296 100644 --- a/examples/integrals_kinetic.ofl +++ b/examples/integrals_kinetic.ofl @@ -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) -- 2.47.3