Skip to content

Commit

Permalink
Bump version number
Browse files Browse the repository at this point in the history
  • Loading branch information
mikaem committed Sep 6, 2020
1 parent eebf988 commit 28b88e8
Show file tree
Hide file tree
Showing 11 changed files with 1,503 additions and 182 deletions.
1,201 changes: 1,174 additions & 27 deletions binder/Torus-biharmonic.ipynb

Large diffs are not rendered by default.

133 changes: 114 additions & 19 deletions binder/non-orthogonal-poisson.ipynb

Large diffs are not rendered by default.

159 changes: 127 additions & 32 deletions binder/sphere-helmholtz.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -47,7 +47,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -65,7 +65,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -86,7 +86,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -104,7 +104,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -124,9 +124,23 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$\\left( \\frac{\\partial u}{\\partial \\theta }\\right) \\mathbf{b}_{\\theta} \\\\+\\left( \\frac{1}{\\sin^{2}{\\left(\\theta \\right)}}\\frac{\\partial u}{\\partial \\phi }\\right) \\mathbf{b}_{\\phi} \\\\$$"
],
"text/plain": [
"<IPython.core.display.Math object>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import Math\n",
"#Math((-div(grad(u))+alpha*u).tolatex(funcname='u', symbol_names={theta: '\\\\theta', phi: '\\\\phi'}))\n",
Expand All @@ -144,7 +158,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -160,7 +174,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -178,9 +192,17 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error = (1.5813355475201035e-11+2.9239577358028935e-17j) 4.495765483420717e-08\n"
]
}
],
"source": [
"uj = u_hat.backward()\n",
"uq = Array(T, buffer=ue)\n",
Expand All @@ -189,9 +211,32 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.lines.Line2D at 0x7fe5c672a0f0>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
Expand All @@ -208,7 +253,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -225,7 +270,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -245,7 +290,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -273,9 +318,23 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$\\frac{\\partial^4 u}{\\partial \\theta^4 }+\\frac{2}{\\tan{\\left(\\theta \\right)}}\\frac{\\partial^3 u}{\\partial \\theta^3 }+\\frac{2}{\\sin^{2}{\\left(\\theta \\right)}}\\frac{\\partial^4 u}{\\partial \\theta^2 \\partial \\phi^2 }+\\left( -2 - \\frac{1}{\\tan^{2}{\\left(\\theta \\right)}} \\right)\\frac{\\partial^2 u}{\\partial \\theta^2 }- \\frac{2 \\cos{\\left(\\theta \\right)}}{\\sin^{3}{\\left(\\theta \\right)}}\\frac{\\partial^3 u}{\\partial \\theta \\partial \\phi^2 }+\\frac{\\cos{\\left(\\theta \\right)}}{\\sin^{3}{\\left(\\theta \\right)}}\\frac{\\partial u}{\\partial \\theta }+\\frac{2 \\left(\\cos^{2}{\\left(\\theta \\right)} + 1\\right)}{\\sin^{4}{\\left(\\theta \\right)}}\\frac{\\partial^2 u}{\\partial \\phi^2 }+\\frac{1}{\\sin^{4}{\\left(\\theta \\right)}}\\frac{\\partial^4 u}{\\partial \\phi^4 }+1000u$$"
],
"text/plain": [
"<IPython.core.display.Math object>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Math((div(grad(div(grad(u))))+alpha*u).tolatex(funcname='u', symbol_names={theta: '\\\\theta', phi: '\\\\phi'}))"
]
Expand All @@ -289,9 +348,17 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error = (4.563888782746799e-06+2.0132603108655956e-15j)\n"
]
}
],
"source": [
"g = (div(grad(div(grad(u))))+alpha*u).tosympy(basis=ue, psi=psi)\n",
"gj = Array(T, buffer=g)\n",
Expand Down Expand Up @@ -322,9 +389,23 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$\\frac{\\partial^4 u}{\\partial r^4 }+\\frac{4}{r}\\frac{\\partial^3 u}{\\partial r^3 }+\\frac{2}{r^{2}}\\frac{\\partial^4 u}{\\partial r^2 \\partial \\theta^2 }+\\frac{2}{r^{2} \\tan{\\left(\\theta \\right)}}\\frac{\\partial^3 u}{\\partial r^2 \\partial \\theta }+\\frac{2}{r^{2} \\sin^{2}{\\left(\\theta \\right)}}\\frac{\\partial^4 u}{\\partial r^2 \\partial \\phi^2 }- \\frac{1}{r^{4} \\tan^{2}{\\left(\\theta \\right)}}\\frac{\\partial^2 u}{\\partial \\theta^2 }+\\frac{\\frac{2}{\\tan{\\left(\\theta \\right)}} + \\frac{\\cos{\\left(\\theta \\right)}}{\\sin^{3}{\\left(\\theta \\right)}}}{r^{4}}\\frac{\\partial u}{\\partial \\theta }+\\frac{4}{r^{4} \\sin^{4}{\\left(\\theta \\right)}}\\frac{\\partial^2 u}{\\partial \\phi^2 }+\\frac{1}{r^{4}}\\frac{\\partial^4 u}{\\partial \\theta^4 }+\\frac{2}{r^{4} \\tan{\\left(\\theta \\right)}}\\frac{\\partial^3 u}{\\partial \\theta^3 }+\\frac{2}{r^{4} \\sin^{2}{\\left(\\theta \\right)}}\\frac{\\partial^4 u}{\\partial \\theta^2 \\partial \\phi^2 }- \\frac{2 \\cos{\\left(\\theta \\right)}}{r^{4} \\sin^{3}{\\left(\\theta \\right)}}\\frac{\\partial^3 u}{\\partial \\theta \\partial \\phi^2 }+\\frac{1}{r^{4} \\sin^{4}{\\left(\\theta \\right)}}\\frac{\\partial^4 u}{\\partial \\phi^4 }$$"
],
"text/plain": [
"<IPython.core.display.Math object>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r, theta, phi = psi = sp.symbols('x,y,z', real=True, positive=True)\n",
"rv = (r*sp.sin(theta)*sp.cos(phi), r*sp.sin(theta)*sp.sin(phi), r*sp.cos(theta))\n",
Expand All @@ -338,7 +419,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -355,9 +436,23 @@
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$$\\frac{\\partial^4 u}{\\partial x^4 }+2\\frac{\\partial^4 u}{\\partial x^2 \\partial y^2 }+2\\frac{\\partial^4 u}{\\partial x^2 \\partial z^2 }+\\frac{\\partial^4 u}{\\partial y^4 }+2\\frac{\\partial^4 u}{\\partial y^2 \\partial z^2 }+\\frac{\\partial^4 u}{\\partial z^4 }$$"
],
"text/plain": [
"<IPython.core.display.Math object>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L0 = FunctionSpace(8, 'C', domain=(0, np.pi))\n",
"F1 = FunctionSpace(8, 'F', dtype='D')\n",
Expand Down
4 changes: 2 additions & 2 deletions docs/demos/Integration/surfaceintegration.do.txt
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ spiral below, the result looks reasonable.
!bc pycod
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(4, 3))
X = C.curvilinear_mesh(uniform=True)
X = C.cartesian_mesh(uniform=True)
ax = fig.add_subplot(111, projection='3d')
p = ax.plot(X[0], X[1], X[2], 'r')
hx = ax.set_xticks(np.linspace(-1, 1, 5))
Expand Down Expand Up @@ -380,7 +380,7 @@ generated image.

!bc
from mayavi import mlab
xx, yy, zz = T.local_curvilinear_mesh()
xx, yy, zz = T.local_cartesian_mesh()
mlab.figure(bgcolor=(1, 1, 1), size=(400, 400))
mlab.mesh(xx, yy, zz, scalars=fb, colormap='jet')
mlab.show()
Expand Down
4 changes: 2 additions & 2 deletions docs/demos/PolarHelmholtz/polarhelmholtz.do.txt
Original file line number Diff line number Diff line change
Expand Up @@ -458,12 +458,12 @@ sl = u_hat2.function_space().local_slice(False)
ur = u_hat2.backward() + u0_hat2.backward()[:, sl[1]]

# Wrap periodic plot around since it looks nicer
xx, yy = u_hat2.function_space().local_curvilinear_mesh()
xx, yy = u_hat2.function_space().local_cartesian_mesh()
xp = np.vstack([xx, xx[0]])
yp = np.vstack([yy, yy[0]])
up = np.vstack([ur, ur[0]])
# For vector no need to wrap around and no need to refine:
xi, yi = TT.local_curvilinear_mesh()
xi, yi = TT.local_cartesian_mesh()

# plot
import matplotlib.pyplot as plt
Expand Down
2 changes: 1 addition & 1 deletion docs/demos/SphereHelmholtz/sphericalhelmholtz.do.txt
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ leading to the figure in the top of this demo.
u_hat2 = u_hat.refine([N*2, M*2])
ur = u_hat2.backward()
from mayavi import mlab
xx, yy, zz = u_hat2.function_space().local_curvilinear_mesh()
xx, yy, zz = u_hat2.function_space().local_cartesian_mesh()
# Wrap periodic direction around
if T.bases[1].domain == (0, 2*np.pi):
xx = np.hstack([xx, xx[:, 0][:, None]])
Expand Down
2 changes: 1 addition & 1 deletion shenfun/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"""
#pylint: disable=wildcard-import,no-name-in-module

__version__ = '3.0.3'
__version__ = '3.0.4'
__author__ = 'Mikael Mortensen'

import numpy as np
Expand Down
6 changes: 4 additions & 2 deletions shenfun/forms/inner.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,8 @@ def inner(expr0, expr1, output_array=None, level=0):
elif isinstance(space, SpectralBase):
df = space.domain_factor()
if isinstance(expr1, Function):
return (expr0/df)*dx(expr1.backward())
#return (expr0/df)*dx(expr1.backward())
expr1 = expr1.backward()
if hasattr(space, 'hi'):
if space.hi.prod() != 1:
expr1 = space.get_measured_array(expr1.copy())
Expand All @@ -157,7 +158,8 @@ def inner(expr0, expr1, output_array=None, level=0):
elif isinstance(space, SpectralBase):
df = space.domain_factor()
if isinstance(expr0, Function):
return (expr1/df)*dx(expr0.backward())
#return (expr1/df)*dx(expr0.backward())
expr0 = expr0.backward()
if hasattr(space, 'hi'):
if space.hi.prod() != 1:
expr0 = space.get_measured_array(expr0.copy())
Expand Down
Loading

0 comments on commit 28b88e8

Please sign in to comment.