Skip to content

Commit

Permalink
rewriting planar_average_charge code
Browse files Browse the repository at this point in the history
  • Loading branch information
CalystaT committed Aug 8, 2023
1 parent 1e60ebe commit 5e22c26
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 11 deletions.
19 changes: 11 additions & 8 deletions docs/doctests/TEST.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1108,7 +1108,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"metadata": {},
"outputs": [
{
Expand All @@ -1118,19 +1118,22 @@
"Reading header information...\n",
"Reading 3D data using Pandas...\n",
"Average of the potential = 8.000000069794417\n",
"Total electrons: 8.000000069794574\n"
"Total electrons: 8.000000069794574\n",
"[2.715 2.715 0. ]\n",
"[0. 2.715 2.715]\n",
"[2.715 0. 2.715]\n"
]
},
{
"ename": "IndexError",
"evalue": "list index out of range",
"ename": "ValueError",
"evalue": "Invalid vector coefficients. Cannot determine plane direction.",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[1], line 34\u001b[0m\n\u001b[1;32m 30\u001b[0m Vector_A \u001b[39m=\u001b[39m [vec_a,vec_b,vec_c]\n\u001b[1;32m 31\u001b[0m \u001b[39m##----------------------------------------------------------------------------------\u001b[39;00m\n\u001b[1;32m 32\u001b[0m \u001b[39m## CONVERT TO PLANAR DENSITIES\u001b[39;00m\n\u001b[1;32m 33\u001b[0m \u001b[39m##----------------------------------------------------------------------------------\u001b[39;00m\n\u001b[0;32m---> 34\u001b[0m slab \u001b[39m=\u001b[39m pot\u001b[39m.\u001b[39mplanar_average_charge(grid_pot_slab,NGX,NGY,NGZ,Vector_A) \u001b[39m#(POINT: no such function called planar_average_charge, only planar_average)\u001b[39;00m\n\u001b[1;32m 35\u001b[0m slab \u001b[39m=\u001b[39m pot\u001b[39m.\u001b[39madd_abscissa(slab,np\u001b[39m.\u001b[39mlinalg\u001b[39m.\u001b[39mnorm(Vector_A[absc_1]))\n\u001b[1;32m 36\u001b[0m np\u001b[39m.\u001b[39msavetxt(\u001b[39m'\u001b[39m\u001b[39mSlab.dat\u001b[39m\u001b[39m'\u001b[39m,slab)\n",
"File \u001b[0;32m~/Downloads/MacroDensity/macrodensity/density.py:1015\u001b[0m, in \u001b[0;36mplanar_average_charge\u001b[0;34m(grid, nx, ny, nz, vector)\u001b[0m\n\u001b[1;32m 1013\u001b[0m a, b \u001b[39m=\u001b[39m \u001b[39m0\u001b[39m, \u001b[39m0\u001b[39m\n\u001b[1;32m 1014\u001b[0m axis \u001b[39m=\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m\"\u001b[39m\n\u001b[0;32m-> 1015\u001b[0m a_vec, b_vec, c_vec, d_vec \u001b[39m=\u001b[39m vector[\u001b[39m0\u001b[39m], vector[\u001b[39m1\u001b[39m], vector[\u001b[39m2\u001b[39m], vector[\u001b[39m3\u001b[39m]\n\u001b[1;32m 1017\u001b[0m \u001b[39mif\u001b[39;00m (a_vec \u001b[39m==\u001b[39m \u001b[39m0\u001b[39m)\u001b[39m.\u001b[39mall() \u001b[39mand\u001b[39;00m (b_vec \u001b[39m==\u001b[39m \u001b[39m0\u001b[39m)\u001b[39m.\u001b[39mall():\n\u001b[1;32m 1018\u001b[0m a, b \u001b[39m=\u001b[39m nx, ny\n",
"\u001b[0;31mIndexError\u001b[0m: list index out of range"
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[2], line 34\u001b[0m\n\u001b[1;32m 30\u001b[0m Vector_A \u001b[39m=\u001b[39m [vec_a,vec_b,vec_c]\n\u001b[1;32m 31\u001b[0m \u001b[39m##----------------------------------------------------------------------------------\u001b[39;00m\n\u001b[1;32m 32\u001b[0m \u001b[39m## CONVERT TO PLANAR DENSITIES\u001b[39;00m\n\u001b[1;32m 33\u001b[0m \u001b[39m##----------------------------------------------------------------------------------\u001b[39;00m\n\u001b[0;32m---> 34\u001b[0m slab \u001b[39m=\u001b[39m pot\u001b[39m.\u001b[39mplanar_average_charge(grid_pot_slab,NGX,NGY,NGZ,Vector_A) \u001b[39m#(POINT: no such function called planar_average_charge, only planar_average)\u001b[39;00m\n\u001b[1;32m 35\u001b[0m slab \u001b[39m=\u001b[39m pot\u001b[39m.\u001b[39madd_abscissa(slab,np\u001b[39m.\u001b[39mlinalg\u001b[39m.\u001b[39mnorm(Vector_A[absc_1]))\n\u001b[1;32m 36\u001b[0m np\u001b[39m.\u001b[39msavetxt(\u001b[39m'\u001b[39m\u001b[39mSlab.dat\u001b[39m\u001b[39m'\u001b[39m,slab)\n",
"File \u001b[0;32m~/Downloads/MacroDensity/macrodensity/density.py:1034\u001b[0m, in \u001b[0;36mplanar_average_charge\u001b[0;34m(grid, nx, ny, nz, vector)\u001b[0m\n\u001b[1;32m 1032\u001b[0m c \u001b[39m=\u001b[39m \u001b[39m0\u001b[39m\n\u001b[1;32m 1033\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[0;32m-> 1034\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39m\"\u001b[39m\u001b[39mInvalid vector coefficients. Cannot determine plane direction.\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m 1036\u001b[0m average_charge \u001b[39m=\u001b[39m planar_average(grid, a, b, c, axis)\n\u001b[1;32m 1038\u001b[0m \u001b[39mreturn\u001b[39;00m average_charge\n",
"\u001b[0;31mValueError\u001b[0m: Invalid vector coefficients. Cannot determine plane direction."
]
}
],
Expand Down
10 changes: 7 additions & 3 deletions macrodensity/density.py
Original file line number Diff line number Diff line change
Expand Up @@ -1014,18 +1014,22 @@ def planar_average_charge(grid: np.ndarray,nx: int,ny: int,nz: int,vector: np.nd
axis = ""
a_vec, b_vec, c_vec = vector[0], vector[1], vector[2]

print(a_vec)
print(b_vec)
print(c_vec)

if (a_vec == 0).all() and (b_vec == 0).all():
a, b = nx, ny
axis = 'z'
c = int(c_vec[2]) - 1
c = 0
elif (a_vec == 0).all() and (c_vec == 0).all():
a, b = nx, nz
axis = 'y'
c = int(b_vec[1]) - 1
c = 0
elif (b_vec == 0).all() and (c_vec == 0).all():
a, b = ny, nz
axis = 'x'
c = int(a_vec[0]) - 1
c = 0
else:
raise ValueError("Invalid vector coefficients. Cannot determine plane direction.")

Expand Down

0 comments on commit 5e22c26

Please sign in to comment.