Final: Remove weird edge case from atomic_basis
I realized that the case of matching x[i] to mu[i] does not make any sense.
This commit is contained in:
@ -232,7 +232,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"def atomic_basis(x, mu, sigma, outer=False):\n",
|
"def atomic_basis(x, mu, sigma):\n",
|
||||||
" \"\"\"\n",
|
" \"\"\"\n",
|
||||||
" Calculates the atomic basis functions for the 1D chain of atoms.\n",
|
" Calculates the atomic basis functions for the 1D chain of atoms.\n",
|
||||||
" \n",
|
" \n",
|
||||||
@ -240,19 +240,13 @@
|
|||||||
" x: array of positions to calculate the wavefunction at\n",
|
" x: array of positions to calculate the wavefunction at\n",
|
||||||
" mu: atomic position(s) to center Gaussian wavefunction at\n",
|
" mu: atomic position(s) to center Gaussian wavefunction at\n",
|
||||||
" sigma: broadening constant for Gaussian function(s)\n",
|
" sigma: broadening constant for Gaussian function(s)\n",
|
||||||
" outer: if mu is an array: whether to calculate the atomic basis\n",
|
|
||||||
" on a len(x) by len(mu) grid instead of the pairs x[i]\n",
|
|
||||||
" and mu[i]\n",
|
|
||||||
"\n",
|
"\n",
|
||||||
" Returns:\n",
|
" Returns:\n",
|
||||||
" An array of values for the wavefunction over the positions\n",
|
" An array of values for the wavefunction over the positions\n",
|
||||||
" as given by x with shape len(x) by len(mu) if outer is False\n",
|
" as given by x with shape len(x) by len(mu)\n",
|
||||||
" \"\"\"\n",
|
" \"\"\"\n",
|
||||||
" \n",
|
" \n",
|
||||||
" if outer:\n",
|
|
||||||
" return np.pi**(-1/4)*sigma**(-1/2)*np.exp(-1/2*(np.subtract.outer(x, mu)/sigma)**2)\n",
|
" return np.pi**(-1/4)*sigma**(-1/2)*np.exp(-1/2*(np.subtract.outer(x, mu)/sigma)**2)\n",
|
||||||
" \n",
|
|
||||||
" return np.pi**(-1/4)*sigma**(-1/2)*np.exp(-1/2*((x - mu)/sigma)**2)\n",
|
|
||||||
"\n",
|
"\n",
|
||||||
"n = 10\n",
|
"n = 10\n",
|
||||||
"sigma = .25\n",
|
"sigma = .25\n",
|
||||||
@ -270,28 +264,6 @@
|
|||||||
"plt.show()"
|
"plt.show()"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": 15,
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"(10000, 2)"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"execution_count": 15,
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "execute_result"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
|
||||||
"x = np.linspace(-1, 1, 10000)\n",
|
|
||||||
"mu = np.array([1,2])\n",
|
|
||||||
"atomic_basis(x, mu, .25, True).shape"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
@ -1109,7 +1081,7 @@
|
|||||||
" \n",
|
" \n",
|
||||||
" # Luckily, the function is built in such a way it can also\n",
|
" # Luckily, the function is built in such a way it can also\n",
|
||||||
" # handle an array input as its first argument.\n",
|
" # handle an array input as its first argument.\n",
|
||||||
" delta = atomic_basis(w, Ei, sigma, True)\n",
|
" delta = atomic_basis(w, Ei, sigma)\n",
|
||||||
" \n",
|
" \n",
|
||||||
" rho = np.sum(delta, axis=1)\n",
|
" rho = np.sum(delta, axis=1)\n",
|
||||||
" \n",
|
" \n",
|
||||||
|
|||||||
Reference in New Issue
Block a user