From e76024d8de305f1f11792d0e837ce8cb42e01bb7 Mon Sep 17 00:00:00 2001 From: Jukka Aho Date: Mon, 14 Sep 2015 20:51:39 +0300 Subject: [PATCH] surface normals --- notebooks/2015-09-10-surface-normals.ipynb | 364 ++++++++++++++++++--- src/elements.jl | 2 +- src/equations.jl | 8 +- 3 files changed, 328 insertions(+), 46 deletions(-) diff --git a/notebooks/2015-09-10-surface-normals.ipynb b/notebooks/2015-09-10-surface-normals.ipynb index 2528574..b37e99c 100644 --- a/notebooks/2015-09-10-surface-normals.ipynb +++ b/notebooks/2015-09-10-surface-normals.ipynb @@ -131,10 +131,10 @@ { "data": { "image/png": [ - "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" ], "text/plain": [ - "PyPlot.Figure(PyObject )" + "PyPlot.Figure(PyObject )" ] }, "metadata": {}, @@ -144,7 +144,7 @@ "data": { "text/plain": [ "1-element Array{Any,1}:\n", - " PyObject " + " PyObject " ] }, "execution_count": 5, @@ -167,18 +167,24 @@ " axis(\"equal\")\n", " xlim(-1.5*R, 1.5*R)\n", " ylim(-0.5*R, 1.5*R)\n", + "\n", " # create a array of vectors\n", - " xis = Vector[[xi] for xi in linspace(-1, 1, 4)]\n", + " xis = Vector[[xi] for xi in linspace(-1, 1)]\n", " for el in elements\n", " coords = JuliaFEM.interpolate(el, :geometry, xis)\n", " # extract 1 and 2 components from array of coordinates\n", " xs = [X[1] for X in coords]\n", " ys = [X[2] for X in coords]\n", " plot(xs, ys, \"-\")\n", + " end\n", + "\n", + " xis = Vector[[xi] for xi in linspace(-1, 1, 4)]\n", + " for el in elements\n", + " coords = JuliaFEM.interpolate(el, :geometry, xis)\n", " normals = JuliaFEM.interpolate(el, :normals, xis)\n", " for i=1:length(normals)\n", " p0 = coords[i]\n", - " p1 = coords[i] + normals[i]*3\n", + " p1 = coords[i] + normals[i]/norm(normals[i])*3\n", " plot([p0[1], p1[1]], [p0[2], p1[2]], \"-k\")\n", " end\n", " end\n", @@ -208,23 +214,9 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "2-element Array{Int64,1}:\n", - " 1\n", - " 2" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "using JuliaFEM: get_connectivity, get_field, set_field\n", - "get_connectivity(elements[1])" + "using JuliaFEM: get_connectivity, get_field, set_field" ] }, { @@ -235,6 +227,9 @@ }, "outputs": [], "source": [ + "\"\"\"\n", + "Alter normal field such that normals of adjacent elements are averaged.\n", + "\"\"\"\n", "function average_normals(elements, normal_field=:normals)\n", " d = Dict()\n", " for el in elements\n", @@ -266,10 +261,10 @@ { "data": { "image/png": [ - "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" ], "text/plain": [ - "PyPlot.Figure(PyObject )" + "PyPlot.Figure(PyObject )" ] }, "metadata": {}, @@ -279,7 +274,7 @@ "data": { "text/plain": [ "1-element Array{Any,1}:\n", - " PyObject " + " PyObject " ] }, "execution_count": 8, @@ -295,7 +290,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "**Strategy 2**: get some info about geometry, here we know that $x^2 + y^2 - 10^2 = 0$." + "**Strategy 2**: Fit field. Here we define normal function and fit field for that." ] }, { @@ -304,21 +299,83 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "fit_field! (generic function with 2 methods)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "using JuliaFEM: interpolate\n", - "using ForwardDiff\n", + "using JuliaFEM: Element, get_number_of_basis_functions, get_detJ, get_basis\n", "\n", - "function fix_normals_by_geometry(elements, geom_info, normal_field=:normals)\n", - " g = ForwardDiff.gradient(geom_info)\n", - " n(p) = g(p)/norm(g(p))\n", - " for el in elements\n", - " coords = interpolate(el, :geometry, Vector[[-1.0], [1.0]])\n", - " normals = [n(p) for p in coords]\n", - " set_field(el, normal_field, normals)\n", + "\"\"\"\n", + "Fit field s.t. || ∫ (Nᵢ(ξ)αᵢ - f(el, ξ)) dS || -> min!\n", + "\"\"\"\n", + "function fit_field!(el::Element, field, f, fixed_coeffs=Int[])\n", + " w = [\n", + " 128/225,\n", + " (332+13*sqrt(70))/900,\n", + " (332+13*sqrt(70))/900,\n", + " (332-13*sqrt(70))/900,\n", + " (332-13*sqrt(70))/900]\n", + " xi = Vector[\n", + " [0.0],\n", + " [ 1/3*sqrt(5 - 2*sqrt(10/7))],\n", + " [-1/3*sqrt(5 - 2*sqrt(10/7))], \n", + " [ 1/3*sqrt(5 + 2*sqrt(10/7))],\n", + " [-1/3*sqrt(5 + 2*sqrt(10/7))]]\n", + " n = get_number_of_basis_functions(el)\n", + " fld = get_field(el, field)\n", + " nfld = length(fld[1])\n", + " #Logging.debug(\"dim of field $field: $nfld\")\n", + "\n", + " M = zeros(n, n)\n", + " b = zeros(n, nfld)\n", + " for i=1:length(w)\n", + " detJ = get_detJ(el, xi[i])\n", + " N = get_basis(el, xi[i])\n", + " M += w[i]*N*N'*detJ\n", + " fi = f(el, xi[i])\n", + " for j=1:nfld\n", + " b[:, j] += w[i]*N*fi[j]*detJ\n", + " end\n", " end\n", - "end\n", - "fix_normals_by_geometry(elements, (X) -> X[1]^2 + X[2]^2 - 10^2)" + "\n", + " coeffs = zeros(n)\n", + " for j=1:nfld\n", + " for k=1:n\n", + " coeffs[k] = fld[k][j]\n", + " end\n", + " if length(fixed_coeffs) != 0\n", + " # constrained problem, some coefficients are fixed\n", + " N = Int[] # rest of coeffs\n", + " S = Int[] # fixed coeffs\n", + " for i = 1:n\n", + " if i in fixed_coeffs\n", + " push!(S, i)\n", + " else\n", + " push!(N, i)\n", + " end\n", + " end\n", + " lhs = M[N,N]\n", + " rhs = b[N,j] - M[N,S]*coeffs[S]\n", + " coeffs[N] = lhs \\ rhs\n", + " else\n", + " coeffs[:] = M \\ b[:,j]\n", + " end\n", + " for k=1:n\n", + " fld[k][j] = coeffs[k]\n", + " end\n", + " end\n", + " set_field(el, field, fld)\n", + " return\n", + "end" ] }, { @@ -327,14 +384,65 @@ "metadata": { "collapsed": false }, + "outputs": [ + { + "data": { + "text/plain": [ + "2-element Array{Float64,1}:\n", + " -0.866025\n", + " 0.5 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using JuliaFEM: interpolate\n", + "using ForwardDiff\n", + "\n", + "\"\"\"\n", + "Return accurate normal for element based on a geometry.\n", + "\"\"\"\n", + "function f(el, xi)\n", + " geom_info(X) = X[1]^2 + X[2]^2 - 10^2\n", + " X = interpolate(el, :geometry, xi)\n", + " n = ForwardDiff.gradient(geom_info, X)\n", + " n / norm(n)\n", + "end\n", + "\n", + "#fit_field(elements[1], :normals, f)\n", + "f(elements[1], [0.0])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "for el in elements\n", + " fit_field!(el, :normals, f)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, "outputs": [ { "data": { "image/png": [ - "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" ], "text/plain": [ - "PyPlot.Figure(PyObject )" + "PyPlot.Figure(PyObject )" ] }, "metadata": {}, @@ -344,10 +452,184 @@ "data": { "text/plain": [ "1-element Array{Any,1}:\n", - " PyObject " + " PyObject " ] }, - "execution_count": 10, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot_stuff(elements)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Normal direction fitted in least squares sense. Why not also fit geometry based on normal direction information?" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "using JuliaFEM: set_degree, get_number_of_basis_functions, dinterpolate\n", + "for el in elements\n", + " set_degree(el, 2)\n", + " for field in (:geometry, :normals)\n", + " push!(el.fields[field], [0.0, 0.0])\n", + " el.fields[field] = el.fields[field][1:get_number_of_basis_functions(el)]\n", + " end\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "fit_derivative_field! (generic function with 2 methods)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using JuliaFEM: get_dbasisdxi\n", + "\n", + "\"\"\"\n", + "Fit field s.t. || ∫ d/dξ(∑ᵢNᵢ(ξ)αᵢ - f(el, ξ)) dS || -> min!\n", + "\"\"\"\n", + "function fit_derivative_field!(el::Element, field, f, fixed_coeffs=Int[])\n", + " w = [\n", + " 128/225,\n", + " (332+13*sqrt(70))/900,\n", + " (332+13*sqrt(70))/900,\n", + " (332-13*sqrt(70))/900,\n", + " (332-13*sqrt(70))/900]\n", + " xi = Vector[\n", + " [0.0],\n", + " [ 1/3*sqrt(5 - 2*sqrt(10/7))],\n", + " [-1/3*sqrt(5 - 2*sqrt(10/7))], \n", + " [ 1/3*sqrt(5 + 2*sqrt(10/7))],\n", + " [-1/3*sqrt(5 + 2*sqrt(10/7))]]\n", + " n = get_number_of_basis_functions(el)\n", + " fld = get_field(el, field)\n", + " nfld = length(fld[1])\n", + " #Logging.debug(\"dim of field $field: $nfld\")\n", + "\n", + " M = zeros(n, n)\n", + " b = zeros(n, nfld)\n", + " for i=1:length(w)\n", + " detJ = get_detJ(el, xi[i])\n", + " dN = get_dbasisdxi(el, xi[i])\n", + " N = get_basis(el, xi[i])\n", + " M += w[i]*dN*dN'*detJ\n", + " fi = f(el, xi[i])\n", + " for j=1:nfld\n", + " b[:, j] += w[i]*dN*fi[j]*detJ\n", + " end\n", + " end\n", + "\n", + " coeffs = zeros(n)\n", + " for j=1:nfld\n", + " for k=1:n\n", + " coeffs[k] = fld[k][j]\n", + " end\n", + " if length(fixed_coeffs) != 0\n", + " println(\"constrained problem, some coefficients are fixed\")\n", + " N = Int[] # rest of coeffs\n", + " S = Int[] # fixed coeffs\n", + " for i = 1:n\n", + " if i in fixed_coeffs\n", + " push!(S, i)\n", + " else\n", + " push!(N, i)\n", + " end\n", + " end\n", + " lhs = M[N,N]\n", + " rhs = b[N,j] - M[N,S]*coeffs[S]\n", + " coeffs[N] = lhs \\ rhs\n", + " else\n", + " coeffs[:] = M \\ b[:,j]\n", + " end\n", + " for k=1:n\n", + " fld[k][j] = coeffs[k]\n", + " end\n", + " end\n", + " set_field(el, field, fld)\n", + " return\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "constrained problem, some coefficients are fixed\n", + "constrained problem, some coefficients are fixed\n" + ] + } + ], + "source": [ + "\"\"\"\n", + "Return tangent vector of elmeent in point ξ.\n", + "\"\"\"\n", + "function tangent(el, xi)\n", + " normal = JuliaFEM.interpolate(el, :normals, xi)\n", + " [0 -1; 1 0]'*normal*5\n", + "end\n", + "\n", + "fit_derivative_field!(elements[1], :geometry, tangent, Int[1, 2])" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": [ + "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" + ], + "text/plain": [ + "PyPlot.Figure(PyObject )" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "1-element Array{Any,1}:\n", + " PyObject " + ] + }, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } diff --git a/src/elements.jl b/src/elements.jl index c6c4213..5c63aa8 100644 --- a/src/elements.jl +++ b/src/elements.jl @@ -371,7 +371,7 @@ function dinterpolate(el::Element, field, xi::Vector) fld = get_field(el, field) dbasis = get_dbasisdxi(el, xi) if isa(dbasis, Vector) - return sum(dbasis .* field) + return sum(dbasis .* fld) end return sum([fld[i]*dbasis[i,:] for i in 1:length(fld)]) end diff --git a/src/equations.jl b/src/equations.jl index 22232f3..307dbd4 100644 --- a/src/equations.jl +++ b/src/equations.jl @@ -43,8 +43,8 @@ function get_detJ(eq::Equation, ip::IntegrationPoint) end function get_detJ(el::Element, ip::IntegrationPoint) J = get_Jacobian(el, ip.xi) - n, m = size(J) - if n != m # for manifolds + ls = length(size(J)) + if ls == 1 # for manifolds return norm(J) else return det(J) @@ -52,8 +52,8 @@ function get_detJ(el::Element, ip::IntegrationPoint) end function get_detJ(el::Element, xi::Vector) J = get_Jacobian(el, xi) - n, m = size(J) - if n != m # for manifolds + ls = length(size(J)) + if ls == 1 # for manifolds return norm(J) else return det(J)