diff --git a/README.md b/README.md
index ad57f3f..31ed00e 100644
--- a/README.md
+++ b/README.md
@@ -65,9 +65,10 @@ This is the guideline for adding new models.
6. Write the code in that file. First we need to create a structure `struct ModelName` with the same name as the model name (The best way is Find & Replace). Create V, E, ψ and other functions. Because the function names conflict, you must always give the structure as an argument. Multi-dispatch avoids conflict. We recommend using Revice.jl while coding. Run `include("./developer/revice.jl")` on the REPL or use dev.ipynb.
7. Add test code test/ModelName.jl. At a minimum, it is recommended to check the normalization and the orthogonality of wavefunction using QuadGK.jl. All tests will be executed by executing `include("./developer/test.jl")`. It will take about 2 minutes to complete.
8. Add documentation. Add either docs/ModelName.md or docs/jmd/ModelName.jmd (if you have a jmd file, the md file will be automatically generated). Include at least the definition of the Hamiltonian and the analytical solutions (eigenvalues and eigenfunctions).
-9. Execute `include("./developer/docs.jl")` to compile. Please check docs/build/*.html in your browser.
-10. Push the code.
-11. Submit a pull request on GitHub.
+9. Add the new model into `pages=[...]` in docs/make.jl.
+10. Execute `include("./developer/docs.jl")` to compile. Please check docs/build/*.html in your browser.
+11. Push the code.
+12. Submit a pull request on GitHub.
## Acknowledgment
diff --git a/developer/dev.ipynb b/developer/dev.ipynb
index e025792..219f1be 100644
--- a/developer/dev.ipynb
+++ b/developer/dev.ipynb
@@ -10,8 +10,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `C:\\Users\\user\\Desktop\\Antique.jl`\n",
- "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Antique [be6e5d0e-34a5-4c8f-af83-e1b5389203d8]\n"
+ "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `C:\\Users\\user\\Desktop\\jafar-san\\Antique.jl`\n"
]
}
],
@@ -22,19 +21,28 @@
"# Pkg.add(\"Revise\")\n",
"using Revise\n",
"Pkg.activate(\"../\")\n",
- "using Antique"
+ "using Antique\n",
+ "using Plots"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a6888ba8",
+ "metadata": {},
+ "source": [
+ "### Delta function potential"
]
},
{
"cell_type": "code",
"execution_count": 2,
- "id": "526ca10f",
+ "id": "8884afc6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "-0.5"
+ "DeltaPotential(0.1, 0.5, 0.1)"
]
},
"execution_count": 2,
@@ -43,21 +51,19 @@
}
],
"source": [
- "using Antique\n",
- "H = HydrogenAtom(Z=1)\n",
- "E(H)"
+ "DP = DeltaPotential(α=0.1,m=0.5, ℏ=0.1)"
]
},
{
"cell_type": "code",
"execution_count": 3,
- "id": "4e1782eb",
+ "id": "f0b00381",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "-2.0"
+ "-0.25"
]
},
"execution_count": 3,
@@ -66,10 +72,334 @@
}
],
"source": [
- "using Antique\n",
- "He⁺ = HydrogenAtom(Z=2)\n",
- "E(He⁺)"
+ "E(DP)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "67eaadcd",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "image/svg+xml": [
+ "\n",
+ "\n"
+ ],
+ "text/html": [
+ "\n",
+ "\n"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "x = LinRange(-2,2,500);\n",
+ "ψδ = ψ(DP,x);\n",
+ "\n",
+ "plot(x,ψδ,linewidth=3)\n",
+ "plot!(xlim=[-2,2],ylim=[0,2.5],legend=false)\n",
+ "plot!(xlabel=\"x\",ylabel=\"ψ\",title=\"Delta Potential\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "8cc7f0a4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "using QuadGK\n",
+ "using Printf"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "6aaddfcb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "true"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "analytical = 1\n",
+ "numerical = quadgk(x -> conj(ψ(DP, x)) * ψ(DP, x), -Inf, Inf, maxevals=10^3)[1]\n",
+ "acceptance = iszero(analytical) ? isapprox(analytical, numerical, atol=1e-5) : isapprox(analytical, numerical, rtol=1e-5)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "40f8eeef",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " 1.000000000000 | 1.000000000000 ✔\n"
+ ]
+ }
+ ],
+ "source": [
+ "@printf(\"%17.12f | %17.12f %s\\n\", analytical, numerical, acceptance ? \"✔\" : \"✗\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "7320de50",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "\\texttt{V(model::DeltaPotential; x)}\n",
+ "\n",
+ "$$ V(x) = -\\alpha \\delta(x).$$\n"
+ ],
+ "text/markdown": [
+ "`V(model::DeltaPotential; x)`\n",
+ "\n",
+ "$$\n",
+ " V(x) = -\\alpha \\delta(x).\n",
+ "$$\n"
+ ],
+ "text/plain": [
+ " \u001b[36mV(model::DeltaPotential; x)\u001b[39m\n",
+ "\n",
+ "\u001b[35m V(x) = -\\alpha \\delta(x).\u001b[39m"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "? V(::DeltaPotential)"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "a18a07f5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "\\texttt{E(model::DeltaPotential)}\n",
+ "\n",
+ "$$ E = - \\frac{m\\alpha^2}{2\\hbar^2}$$\n"
+ ],
+ "text/markdown": [
+ "`E(model::DeltaPotential)`\n",
+ "\n",
+ "$$\n",
+ " E = - \\frac{m\\alpha^2}{2\\hbar^2}\n",
+ "$$\n"
+ ],
+ "text/plain": [
+ " \u001b[36mE(model::DeltaPotential)\u001b[39m\n",
+ "\n",
+ "\u001b[35m E = - \\frac{m\\alpha^2}{2\\hbar^2}\u001b[39m"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "? E(::DeltaPotential)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "d4714c05",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "\\texttt{ψ(model::DeltaPotential, x)}\n",
+ "\n",
+ "$$ \\psi(x) = \\frac{\\sqrt{m\\alpha}}{\\hbar} \\mathrm{e}^{-m\\alpha |x|/\\hbar^2}$$\n"
+ ],
+ "text/markdown": [
+ "`ψ(model::DeltaPotential, x)`\n",
+ "\n",
+ "$$\n",
+ " \\psi(x) = \\frac{\\sqrt{m\\alpha}}{\\hbar} \\mathrm{e}^{-m\\alpha |x|/\\hbar^2}\n",
+ "$$\n"
+ ],
+ "text/plain": [
+ " \u001b[36mψ(model::DeltaPotential, x)\u001b[39m\n",
+ "\n",
+ "\u001b[35m \\psi(x) = \\frac{\\sqrt{m\\alpha}}{\\hbar} \\mathrm{e}^{-m\\alpha |x|/\\hbar^2}\u001b[39m"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "? ψ(::DeltaPotential)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "8668b1aa",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "search: \u001b[0m\u001b[1mD\u001b[22m\u001b[0m\u001b[1me\u001b[22m\u001b[0m\u001b[1ml\u001b[22m\u001b[0m\u001b[1mt\u001b[22m\u001b[0m\u001b[1ma\u001b[22m\u001b[0m\u001b[1mP\u001b[22m\u001b[0m\u001b[1mo\u001b[22m\u001b[0m\u001b[1mt\u001b[22m\u001b[0m\u001b[1me\u001b[22m\u001b[0m\u001b[1mn\u001b[22m\u001b[0m\u001b[1mt\u001b[22m\u001b[0m\u001b[1mi\u001b[22m\u001b[0m\u001b[1ma\u001b[22m\u001b[0m\u001b[1ml\u001b[22m\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/latex": [
+ "\\texttt{DeltaPotential(α=1.0, m=1.0, ℏ=1.0)}\n",
+ "\n",
+ "$\\alpha$ is the potential strength, $m$ is the mass of particle and $\\hbar$ is the reduced Planck constant (Dirac's constant).\n",
+ "\n"
+ ],
+ "text/markdown": [
+ "`DeltaPotential(α=1.0, m=1.0, ℏ=1.0)`\n",
+ "\n",
+ "$\\alpha$ is the potential strength, $m$ is the mass of particle and $\\hbar$ is the reduced Planck constant (Dirac's constant).\n"
+ ],
+ "text/plain": [
+ " \u001b[36mDeltaPotential(α=1.0, m=1.0, ℏ=1.0)\u001b[39m\n",
+ "\n",
+ " \u001b[35m\\alpha\u001b[39m is the potential strength, \u001b[35mm\u001b[39m is the mass of particle and \u001b[35m\\hbar\u001b[39m is the\n",
+ " reduced Planck constant (Dirac's constant)."
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "? DeltaPotential"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2ed42032",
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
diff --git a/docs/jmd2md.jl b/docs/jmd2md.jl
index 327190b..a657482 100644
--- a/docs/jmd2md.jl
+++ b/docs/jmd2md.jl
@@ -1,7 +1,7 @@
using Antique
using Weave
-for file in Antique.models # [:InfinitePotentialWell :HarmonicOscillator :MorsePotential :HydrogenAtom]
+for file in Antique.models # [:DeltaPotential]
weave("./src/jmd/$file.jmd", doctype="github", out_path="./src/", fig_path="./assets/fig/")
text = Antique.load("./src/$file.md")
# remove ``` after include(...s)
diff --git a/docs/make.jl b/docs/make.jl
index 7b13426..8dfda4a 100644
--- a/docs/make.jl
+++ b/docs/make.jl
@@ -24,6 +24,7 @@ makedocs(;
"Harmonic Oscillator" => "HarmonicOscillator.md" ,
"Morse Potential" => "MorsePotential.md" ,
"Hydrogen Atom" => "HydrogenAtom.md" ,
+ "Delta Potential" => "DeltaPotential.md" ,
],
)
diff --git a/docs/src/DeltaPotential.md b/docs/src/DeltaPotential.md
new file mode 100644
index 0000000..377f636
--- /dev/null
+++ b/docs/src/DeltaPotential.md
@@ -0,0 +1,139 @@
+```@meta
+CurrentModule = Antique
+```
+
+# Delta Potential
+
+The Delta potential is one of the simplest models for quantum mechanical system in 1D.
+It always has one bound state and its wave function has a cusp at the origin.
+
+## Defitions
+
+This model is described with the time-independent Schrödinger equation
+
+```math
+ \hat{H} \psi(x) = E \psi(x),
+```
+
+and the Hamiltonian
+```math
+ \hat{H} = - \frac{\hbar^2}{2m} \frac{\mathrm{d}^2}{\mathrm{d}x ^2} + V(x).
+```
+
+Parameters are specified with the following struct.
+
+#### Parameters
+
+```@docs
+DeltaPotential
+```
+
+#### Potential
+```@docs
+V(::DeltaPotential)
+```
+
+#### Eigen Values
+```@docs
+E(::DeltaPotential)
+```
+
+#### Eigen Functions
+```@docs
+ψ(::DeltaPotential)
+```
+
+## Usage & Examples
+
+[Install Antique.jl](@ref Install) for the first use and run `using Antique` before each use. The energy `E()`, wavefunction `ψ()`, potential `V()` and some other functions are suppoted. In this system, the model is generated by `DeltaPotential` and several parameters `α`, `m` and `ℏ` are set as optional arguments.
+
+```julia
+using Antique
+DP = DeltaPotential(α=1.0, m=1.0, ℏ=1.0)
+```
+
+
+
+
+Parameters:
+
+```julia
+julia> DP.α
+1.0
+
+julia> DP.m
+1.0
+
+julia> DP.ℏ
+1.0
+```
+
+
+
+Eigen values:
+
+```julia
+julia> E(DP)
+-0.5
+```
+
+
+
+Wave functions:
+
+```julia
+DP = DeltaPotential(α=0.1, m=0.5, ℏ=0.1)
+x = LinRange(-2,2,500);
+
+using Plots
+plot(x, x->ψ(DP,x), linewidth=3)
+plot!(xlim=[-2,2], ylim=[0,2.5], legend=false)
+plot!(xlabel="x", ylabel="ψ(x)", title="Delta Potential")
+```
+
+![](./assets/fig//DeltaPotential_4_1.png)
+
+
+
+## Testing
+
+Unit testing and Integration testing were done using numerical integration ([QuadGK.jl](https://juliamath.github.io/QuadGK.jl/stable/)). The test script is [here](https://github.com/ohno/Antique.jl/blob/main/test/DeltaPotential.jl).
+
+#### Normalization of $\psi(x)$
+
+```math
+\int_{-\infty}^{\infty} \psi^\ast(x) \psi(x) ~\mathrm{d}x = 1
+```
+
+```
+ α | m | ℏ | analytical | numerical
+--- | --- | --- | ----------------- | -----------------
+0.1 | 0.1 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+0.1 | 0.1 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+0.1 | 0.1 | 7.0 | 1.000000000000 | 1.000004676239 ✔
+0.1 | 1.0 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+0.1 | 1.0 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+0.1 | 1.0 | 7.0 | 1.000000000000 | 0.999999999999 ✔
+0.1 | 7.0 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+0.1 | 7.0 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+0.1 | 7.0 | 7.0 | 1.000000000000 | 1.000000000000 ✔
+1.0 | 0.1 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+1.0 | 0.1 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+1.0 | 0.1 | 7.0 | 1.000000000000 | 0.999999999999 ✔
+1.0 | 1.0 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+1.0 | 1.0 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+1.0 | 1.0 | 7.0 | 1.000000000000 | 1.000000000000 ✔
+1.0 | 7.0 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+1.0 | 7.0 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+1.0 | 7.0 | 7.0 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 0.1 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 0.1 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 0.1 | 7.0 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 1.0 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 1.0 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 1.0 | 7.0 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 7.0 | 0.1 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 7.0 | 1.0 | 1.000000000000 | 1.000000000000 ✔
+7.0 | 7.0 | 7.0 | 1.000000000000 | 1.000000000000 ✔
+
+```
diff --git a/docs/src/InfinitePotentialWell.md b/docs/src/InfinitePotentialWell.md
index 48aa971..d080d6f 100644
--- a/docs/src/InfinitePotentialWell.md
+++ b/docs/src/InfinitePotentialWell.md
@@ -17,7 +17,7 @@ The infinite potential well (particle in a box) is the simplest model for quantu
#### Hamiltonian
```math
- \hat{H} = \frac{\hbar^2}{2m} \frac{\mathrm{d}^2}{\mathrm{d}x ^2} + V(x)
+ \hat{H} = - \frac{\hbar^2}{2m} \frac{\mathrm{d}^2}{\mathrm{d}x ^2} + V(x)
```
#### Potential
diff --git a/docs/src/assets/fig/DeltaPotential_4_1.png b/docs/src/assets/fig/DeltaPotential_4_1.png
new file mode 100644
index 0000000..b3bee0b
Binary files /dev/null and b/docs/src/assets/fig/DeltaPotential_4_1.png differ
diff --git a/docs/src/index.md b/docs/src/index.md
index 860cc65..3bb0f13 100644
--- a/docs/src/index.md
+++ b/docs/src/index.md
@@ -70,6 +70,12 @@ There are more examples on each model page.
HydrogenAtom
+
DeltaPotential
+