From 731d450fcddb9d14b40b20edbe0dabc606ded86b Mon Sep 17 00:00:00 2001 From: Jukka Aho Date: Thu, 17 Dec 2015 20:44:35 +0200 Subject: [PATCH 1/2] 3d mortar tests --- notebooks/2015-12-13-3d-tie-contact.ipynb | 681 +++++++++++++--------- src/mortar.jl | 7 + src/preprocess_aster_reader.jl | 7 +- 3 files changed, 402 insertions(+), 293 deletions(-) diff --git a/notebooks/2015-12-13-3d-tie-contact.ipynb b/notebooks/2015-12-13-3d-tie-contact.ipynb index 94be2fd..e93c475 100644 --- a/notebooks/2015-12-13-3d-tie-contact.ipynb +++ b/notebooks/2015-12-13-3d-tie-contact.ipynb @@ -343,7 +343,7 @@ " style=\"width:100%; height:auto; vertical-align:middle;\">\n", " \n", "
\n", - " \n", "
\n", "" @@ -367,8 +367,8 @@ "data": { "text/plain": [ "Dict{ASCIIString,Any} with 2 entries:\n", - " \"nodes\" => Dict(68=>[1.0,0.0,0.5],2=>[0.0,0.0,0.16666666666666666],89=…\n", - " \"connectivity\" => Dict(11=>(:SE2,:OTHER,[4,13]),158=>(:QU4,:UPPER_TO_LOWER,[8…" + " \"nodes\" => Dict(11=>[1.0,0.0,0.5],134=>[0.5,0.25,1.0],158=>[1.0,0.5,0.…\n", + " \"connectivity\" => Dict(288=>(:HE8,:OTHER,[176,177,180,179,167,168,171,170]),3…" ] }, "execution_count": 1, @@ -381,12 +381,6 @@ "using JuliaFEM.Preprocess: parse_aster_med_file\n", "using JuliaFEM.Core: LinearElasticityProblem, DirichletProblem, get_connectivity,\n", " Quad4, Hex8, LinearSolver, update\n", - "#mesh_lower = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/LOWER_BLOCK.med\")\n", - "#mesh_upper = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/UPPER_BLOCK.med\")\n", - "#mesh_lower = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/BLOCK_TWOELEM.med\", \"LOWER_BLOCK_SPARSE\")\n", - "#mesh_upper = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/BLOCK_TWOELEM.med\", \"UPPER_BLOCK_SPARSE\")\n", - "#mesh1 = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/BLOCK_SPARSE.med\", \"LOWER_BLOCK_SPARSE\")\n", - "#mesh2 = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/BLOCK_SPARSE.med\", \"UPPER_BLOCK_SPARSE\")\n", "mesh = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/BLOCKS.med\")" ] }, @@ -401,7 +395,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO: created 39 elements.\n" + "INFO: created 107 elements.\n", + "INFO: created 59 boundary elements.\n" ] } ], @@ -427,25 +422,8 @@ " element[\"displacement traction force 3\"] = -100.0\n", " push!(field_problem, element)\n", "end\n", - "info(\"created $(length(field_problem.elements)) elements.\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO: created 35 boundary elements.\n" - ] - } - ], - "source": [ + "info(\"created $(length(field_problem.elements)) elements.\")\n", + "\n", "# boundary conditions\n", "boundary_problem = DirichletProblem(\"displacement\", 3)\n", "\n", @@ -476,7 +454,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -490,19 +468,9 @@ }, { "data": { - "image/png": "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ESNG6NChQ6qqqmoyXlhYKEkaPny4x7k33XSTjDHN3pN2ISR79+7tbRkAAHjkdajNnDlTDQ0NWr9+feNYbW2tcnNzlZqaqmuuuUaSdPz4cR08eFD19fWN+82ZM0eS9Pvf/75x7OzZs8rNzdWVV17pdQIDANASr59+HDVqlGbNmqVly5apsrJSCQkJ2rhxo44eParc3NzG/ZYuXapNmzaprKxMffv2lSTdcccduuWWW/Tkk0/qiy++0I033qjt27eroKBA69evV1hYWPuvDADQ5XgdapK0adMmPfroo9q8ebNOnjyppKQk7dixo8lNHo7jyHGcZnO3b9+uX/ziF9q2bZs2bNigwYMHa+vWrdzsAQBoNz6FWnh4uLKzs5Wdne1xn9zc3CZXbhdERkYqJyeHX5MFAOgw/OkZAIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1CDUAgDUINQCANQg1AIA1fAq12tpaZWVlKS4uTj169FBqaqp27drl84MuWLBAISEhmjZtms9zAQDwxKdQmzt3rnJycpSRkaE1a9YoNDRUU6dOVUFBgdef469//as2btyoiIgIOY7jc8EAAHjidajt27dP27Zt01NPPaWnn35a999/v9566y3169dPS5Ys8epzGGO0cOFC3XvvverTp0+riwYAwB2vQy0/P18ul0uZmZmNY+Hh4Zo/f7727t2rzz777JKfY/PmzSopKdHjjz8uY0zrKgYAwAOvQ23//v1KTExUz549m4yPHDlSknTgwIEW51dVVSkrK0vLly/nKg0A0CG8DrWKigrFxsY2G78wduzYsRbnr1ixQpGRkVq0aJGPJQIA4B2XtztWV1crPDy82XhERETjdk8OHTqkNWvW6A9/+IPCwsJaUSYAAJfm9ZVa9+7dVVtb22y8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", + "image/png": "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", "text/plain": [ - "PyPlot.Figure(PyObject )" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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47xtFQBwmerogqWyslKpqalejff6QZGxY8fqyJEjamhoaFMvLy+XJKWkpHgcW19fr9bW1nb1lpYWSZLL5fK2DQAAPPI61DIyMtTa2qpNmza5a83NzSosLFR6erquvfZaSdKJEyd0+PDhNkGVlJSk3//+9/riiy/ctdbWVr322muKiYlRYmJiT8wFABDkvL79mJaWpvnz52vNmjWqr69XYmKiioqKVFNTo8LCQvd+q1evVnFxsaqqqjRkyBB3bdGiRbrllluUk5OjiIgIlZSUqLKyUj/72c86fT8NAABveR1qklRcXKy1a9dq8+bNOnXqlJKTk7V9+3ZNnjzZvY/D4ZDD4Wgz7nvf+57i4uL01FNP6ec//7nOnj2rG2+8URs3btSyZct6ZiYAgKDnU6g5nU7l5eUpLy/P4z6FhYVtrtwumjFjhmbMmOF7hwAAeIk/PQMAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwBqEGALAGoQYAsAahBgCwhk+h1tzcrNzcXCUkJKh///5KT0/Xzp07vR6/c+dOTZ8+XVdccYViYmJ0880367XXXvO5aQAAOuJTqGVnZys/P19ZWVkqKChQaGioZs2apbKysm8cW1hYqNtuu01Op1NPPfWU1q9fr3/8x3/UJ5980uXmAQD4e2He7rh3715t3bpV69ev18MPPyxJysrK0ujRo7Vq1apOg62qqkoPPvigli9frvz8/O53DQBAB7y+UistLVVYWJhycnLcNafTqaVLl2r37t369NNPPY594YUXZIzR448/Lkk6d+6cjDHdaBsAgPa8DrV9+/YpKSlJAwYMaFMfP368JGn//v0ex+7cuVM33nijtm/fruuuu04xMTGKi4vTT3/6U8INANBjvL79WFdXp/j4+Hb1i7Xa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d999Vzt27NBvf/tbVVVVuesul0tfffWVqqurddVVVyk6Otrja69YsUKxsbFtapmZmcrMzPS2fQDAZaCkpEQlJSVtamfOnPF6vNehNnbsWL333ntqaGhoE0Dl5eWSpJSUlA7H1dTUSJLuuuuudttqa2t1/fXXa8OGDVq+fLnH187Pz9e4ceO8bRUAcJnq6IKlsrJSqampXo33OtQyMjK0fv16bdq0ST/60Y8kXfgNI4WFhUpPT9e1114rSTpx4oROnz6tESNGKCwsTLfeequ2bdvW5mMZY5STk6Nhw4bpxz/+sUaPHu1tGwAAeOR1qKWlpWn+/Plas2aN6uvrlZiYqKKiItXU1KiwsNC93+rVq1VcXKyqqioNGTJE3/rWt/Stb32r3cd76KGHNHjwYM2dO7dnZgIACHpeh5okFRcXa+3atdq8ebNOnTql5ORkbd++XZMnT3bv43A4vPr1V/yKLABAT/Mp1JxOp/Ly8pSXl+dxn8LCwjZXbp4cP37cl5cGAOAb8adnAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANYg1AAA1iDUAADWINQAANbwOdSam5uVm5urhIQE9e/fX+np6dq5c+c3jvvDH/6gJUuWKCkpSVFRUUpMTNSyZct04sSJLjUOAMClfA617Oxs5efnKysrSwUFBQoNDdWsWbNUVlbW6bjc3Fzt2rVLd999t5599lnde++9eu211zR27Fj95S9/6fIEAAC4KMyXnffu3autW7dq/fr1evjhhyVJWVlZGj16tFatWtVpsG3YsEGTJ09uU5s5c6amTJmiX/7yl1q3bl0X2gcA4G98ulIrLS1VWFiYcnJy3DWn06mlS5dq9+7d+vTTTz2OvTTQJOkf/uEfdNVVV+nw4cO+tAEAQId8CrV9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", - "text/plain": [ - "PyPlot.Figure(PyObject )" + "PyPlot.Figure(PyObject )" ] }, "metadata": {}, @@ -514,7 +482,7 @@ "(-0.1,1.1)" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -524,8 +492,10 @@ "\n", "using PyPlot\n", "\n", - "mortar_surface = :LOWER_TO_UPPER\n", - "slave_surface = :UPPER_TO_LOWER\n", + "#mortar_surface = :LOWER_TO_UPPER\n", + "#slave_surface = :UPPER_TO_LOWER\n", + "mortar_surface = :UPPER_TO_LOWER\n", + "slave_surface = :LOWER_TO_UPPER\n", "\n", "fig1 = figure(figsize=(5, 5))\n", "master_elements = JuliaFEM.Core.Element[]\n", @@ -536,24 +506,20 @@ " X = element(\"geometry\", 0.0)\n", " x = [X[mod(i, 4)+1][1] for i=1:5]\n", " y = [X[mod(i, 4)+1][2] for i=1:5]\n", - " plot(x, y, \"-bo\")\n", + " plot(x, y, \"-bo\", alpha=0.5)\n", " push!(master_elements, element)\n", "end\n", "\n", - "xlim(-0.1, 1.1)\n", - "ylim(-0.1, 1.1)\n", - "\n", - "fig1 = figure(figsize=(5, 5))\n", "contact_problem = MortarProblem(\"displacement\", 3)\n", "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", " (eltype == :QU4) && (elset == slave_surface) || continue\n", - " element = Quad4(elcon)\n", + " element = Quad4(reverse(elcon))\n", " update(element, \"geometry\", mesh[\"nodes\"])\n", " element[\"master elements\"] = master_elements\n", " X = element(\"geometry\", 0.0)\n", " x = [X[mod(i, 4)+1][1] for i=1:5]\n", " y = [X[mod(i, 4)+1][2] for i=1:5]\n", - " plot(x, y, \"-ro\")\n", + " plot(x, y, \"-ro\", alpha=0.5)\n", " calculate_normal_tangential_coordinates!(element, 0.0)\n", " push!(contact_problem, element)\n", "end\n", @@ -563,7 +529,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -577,37 +543,33 @@ "INFO: Starting iteration 1\n", "INFO: Assembling field problems...\n", "INFO: Assembling body 1...\n", - "INFO: dim = 273\n", + "INFO: Assembly: 10.0 % done. \n", + "INFO: Assembly: 20.0 % done. \n", + "INFO: Assembly: 30.0 % done. \n", + "INFO: Assembly: 40.0 % done. \n", + "INFO: Assembly: 50.0 % done. \n", + "INFO: Assembly: 60.0 % done. \n", + "INFO: Assembly: 70.0 % done. \n", + "INFO: Assembly: 80.0 % done. \n", + "INFO: Assembly: 90.0 % done. \n", + "INFO: Assembly: 100.0 % done. \n", + "INFO: dim = 567\n", "INFO: Assembling boundary problems...\n", "INFO: Assembling boundary 1...\n", "INFO: Assembling boundary 2...\n", "INFO: dumping matrices to disk, file = matrices_tie_contact_3d_host_1_iteration_1.jld\n", "INFO: Solving system\n", - "INFO: UMFPACK: solved in 0.21015095710754395 seconds. norm = 0.5778929077881374\n", - "INFO: timing info for iteration:\n" - ] - }, - { - "data": { - "text/plain": [ - "(1,true)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO: boundary assembly : 1.677372932434082\n", - "INFO: field assembly : 1.1189799308776855\n", - "INFO: dump matrices to disk : 1.127087116241455\n", - "INFO: solve problem : 0.3656301498413086\n", - "INFO: update element data : 0.024611949920654297\n", - "INFO: non-linear iteration : 4.313704013824463\n", - "INFO: solver finished in 4.458410978317261 seconds.\n" + "INFO: UMFPACK: solved in 0.21409296989440918 seconds. norm = 1.0506403593090503\n", + "INFO: timing info for iteration:\n", + "INFO: boundary assembly : 1.9287428855895996\n", + "INFO: field assembly : 1.2453219890594482\n", + "INFO: dump matrices to disk : 1.1484379768371582\n", + "INFO: solve problem : 0.34978604316711426\n", + "INFO: update element data : 0.023519039154052734\n", + "INFO: non-linear iteration : 4.695832014083862\n", + "INFO: solver finished in 4.851454019546509 seconds.\n", + "INFO: nid near corner = 95\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777818,0.02777777777777777,-0.11111111111111108]\n" ] } ], @@ -622,186 +584,8 @@ "push!(solver, field_problem)\n", "push!(solver, boundary_problem)\n", "push!(solver, contact_problem)\n", - "call(solver, 0.0)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1 84 1.000000 0.500000 0.500000\n", - "2 89 0.500000 0.500000 0.500000\n", - "3 69 0.500000 0.000000 0.500000\n", - "4 68 1.000000 0.000000 0.500000\n" - ] - } - ], - "source": [ - "prob = MortarProblem(\"temperature\", 1)\n", - "ENV[\"COLUMNS\"] = 160\n", - "ass = JuliaFEM.Core.Assembly()\n", - "el = contact_problem.elements[1]\n", - "push!(prob, el)\n", - "JuliaFEM.Core.assemble!(ass, prob, el, 0.0)\n", - "for (i, X) in enumerate(el(\"geometry\", 0.0))\n", - " ci = JuliaFEM.Core.get_connectivity(el)[i]\n", - " @printf \"%d %d %f %f %f\\n\" [i; ci; X]...\n", - "end\n", - "C = sparse(ass.stiffness_matrix)*46656\n", - "nz1 = sort(unique(rowvals(C)))\n", - "nz2 = sort(unique(rowvals(C')))\n", - "C = C[nz1,nz2]\n", - "CC = full(C);" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO: win\n", - "INFO: win\n", - "INFO: win\n", - "INFO: win\n", - "INFO: win\n", - "INFO: win\n", - "INFO: win\n", - "INFO: win\n", - "INFO: win\n" - ] - } - ], - "source": [ - "for me in el[\"master elements\"]\n", - " \n", - "end" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "JuliaFEM.Core.Field{JuliaFEM.Core.Discrete,JuliaFEM.Core.Variable,JuliaFEM.Core.TimeInvariant}(Array{T,2}[\n", - "3x3 Array{Float64,2}:\n", - " 0.0 1.0 0.0\n", - " 0.0 0.0 1.0\n", - " 1.0 0.0 0.0,\n", - "\n", - "3x3 Array{Float64,2}:\n", - " 0.0 1.0 0.0\n", - " 0.0 0.0 1.0\n", - " 1.0 0.0 0.0,\n", - "\n", - "3x3 Array{Float64,2}:\n", - " 0.0 1.0 0.0\n", - " 0.0 0.0 1.0\n", - " 1.0 0.0 0.0,\n", - "\n", - "3x3 Array{Float64,2}:\n", - " 0.0 1.0 0.0\n", - " 0.0 0.0 1.0\n", - " 1.0 0.0 0.0])" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "el(\"normal-tangential coordinates\", 0.0)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "4x13 Array{Float64,2}:\n", - " -784.0 -700.0 -28.0 -700.0 -28.0 -23.7 -0.5 -622.1 -23.7 1295.91 647.289 647.289 319.511\n", - " -224.0 -1064.0 -224.0 -200.0 -8.0 -180.6 -2.2 -919.6 -27.6 647.289 1285.51 319.511 597.689\n", - " -224.0 -200.0 -8.0 -1064.0 -224.0 -27.6 -2.2 -919.6 -180.6 647.289 319.511 1285.51 597.689\n", - " -64.0 -304.0 -64.0 -304.0 -64.0 -186.6 -8.6 -1224.2 -186.6 319.511 597.689 597.689 891.111" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "CC" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO: nid near corner = 73\n", - "INFO: displacement X = [1.0,1.0,1.0], u = [0.027468071147715937,0.02746807114771595,-0.11069400634503247]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Test Failed\n", - " Expression: " - ] - }, - { - "ename": "LoadError", - "evalue": "LoadError: There was an error during testing\nwhile loading In[24], in expression starting on line 14", - "output_type": "error", - "traceback": [ - "LoadError: There was an error during testing\nwhile loading In[24], in expression starting on line 14", - "", - " in record at /home/jukka/.julia/v0.4/BaseTestNext/src/BaseTestNext.jl:290", - " in do_test at /home/jukka/.julia/v0.4/BaseTestNext/src/BaseTestNext.jl:192", - " [inlined code] from In[24]:20", - " in anonymous at no file:0" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "isapprox(u[i],known_value)\n" - ] - } - ], - "source": [ + "call(solver, 0.0)\n", + "\n", "using JuliaFEM.Test\n", "\n", "nid = 0\n", @@ -827,33 +611,7 @@ }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3-element Array{Float64,1}:\n", - " 0.0274681\n", - " 0.0274681\n", - " -0.110694 " - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "[0.02952918548952522,0.0295291854895252,-0.11404135697110807]\n", - "[0.027468071147715937,0.02746807114771595,-0.11069400634503247]" - ] - }, - { - "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -862,7 +620,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO: XDFM: ndim = 273\n" + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777818,0.02777777777777777,-0.11111111111111108]\n", + "INFO: XDFM: ndim = 567\n" ] } ], @@ -902,9 +661,353 @@ "collapsed": true }, "source": [ - "" + "" ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "using JuliaFEM\n", + "using JuliaFEM.Preprocess: parse_aster_med_file\n", + "using JuliaFEM.Core: LinearElasticityProblem, DirichletProblem, get_connectivity, Tri3, Tet4, LinearSolver, update" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO: Found 6 element sets: SYM23, SYM12, UPPER_TO_LOWER, LOAD, SYM13, LOWER_TO_UPPER\n" + ] + }, + { + "data": { + "text/plain": [ + "Dict{ASCIIString,Any} with 2 entries:\n", + " \"nodes\" => Dict(11=>[0.0,0.3333333333333333,0.0],134=>[0.0,0.869378844…\n", + " \"connectivity\" => Dict(306=>(:TE4,:OTHER,[53,24,51,83]),1316=>(:TE4,:OTHER,[2…" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mesh = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/BLOCKS_TET4.med\")\n", + "#med = JuliaFEM.Preprocess.MEDFile(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/BLOCKS_TET4.med\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO: created 955 elements.\n", + "INFO: created 116 boundary elements.\n" + ] + } + ], + "source": [ + "# interior elements are of type HE8\n", + "field_problem = LinearElasticityProblem()\n", + "\n", + "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " eltype == :TE4 || continue\n", + " element = Tet4(elcon)\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " element[\"youngs modulus\"] = 900.0\n", + " element[\"poissons ratio\"] = 0.25\n", + " #info(\"lower: add element with connectivity $elcon\")\n", + " push!(field_problem, element)\n", + "end\n", + "\n", + "# Neumann boundary condition, traction force -100 on Z direction for element set LOAD\n", + "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " (eltype == :TR3) && (elset == :LOAD) || continue\n", + " element = Tri3(elcon)\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " element[\"displacement traction force 3\"] = -100.0\n", + " push!(field_problem, element)\n", + "end\n", + "info(\"created $(length(field_problem.elements)) elements.\")\n", + "\n", + "# boundary conditions\n", + "boundary_problem = DirichletProblem(\"displacement\", 3)\n", + "\n", + "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " (eltype == :TR3) && (elset in [:SYM23, :SYM12, :SYM13]) || continue\n", + " element = Tri3(elcon)\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " if elset == :SYM23\n", + " element[\"displacement 1\"] = 0.0\n", + " elseif elset == :SYM12\n", + " element[\"displacement 3\"] = 0.0\n", + " elseif elset == :SYM13\n", + " element[\"displacement 2\"] = 0.0\n", + " end\n", + " push!(boundary_problem, element)\n", + "end\n", + "info(\"created $(length(boundary_problem.elements)) boundary elements.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: using PyPlot.mesh in module Main conflicts with an existing identifier.\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "PyPlot.Figure(PyObject )" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "(-0.1,1.1)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using JuliaFEM.Core: Element, MortarProblem, calculate_normal_tangential_coordinates!\n", + "\n", + "using PyPlot\n", + "\n", + "#mortar_surface = :LOWER_TO_UPPER\n", + "#slave_surface = :UPPER_TO_LOWER\n", + "mortar_surface = :UPPER_TO_LOWER\n", + "slave_surface = :LOWER_TO_UPPER\n", + "\n", + "fig1 = figure(figsize=(5, 5))\n", + "master_elements = JuliaFEM.Core.Element[]\n", + "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " (eltype == :TR3) && (elset == mortar_surface) || continue\n", + " element = Tri3(elcon)\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " X = element(\"geometry\", 0.0)\n", + " x = [X[mod(i, 3)+1][1] for i=1:4]\n", + " y = [X[mod(i, 3)+1][2] for i=1:4]\n", + " plot(x, y, \"-bo\", alpha=0.5)\n", + " push!(master_elements, element)\n", + "end\n", + "\n", + "contact_problem = MortarProblem(\"displacement\", 3)\n", + "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " (eltype == :TR3) && (elset == slave_surface) || continue\n", + " element = Tri3(reverse(elcon))\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " element[\"master elements\"] = master_elements\n", + " X = element(\"geometry\", 0.0)\n", + " x = [X[mod(i, 3)+1][1] for i=1:4]\n", + " y = [X[mod(i, 3)+1][2] for i=1:4]\n", + " plot(x, y, \"-ro\", alpha=0.5)\n", + " calculate_normal_tangential_coordinates!(element, 0.0)\n", + " push!(contact_problem, element)\n", + "end\n", + "xlim(-0.1, 1.1)\n", + "ylim(-0.1, 1.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO: # of field problems: 1\n", + "INFO: # of boundary problems: 2\n", + "INFO: Starting iteration 1\n", + "INFO: Assembling field problems...\n", + "INFO: Assembling body 1...\n", + "INFO: Assembly: 10.0 % done. \n", + "INFO: Assembly: 20.0 % done. \n", + "INFO: Assembly: 30.0 % done. \n", + "INFO: Assembly: 40.0 % done. \n", + "INFO: Assembly: 50.0 % done. \n", + "INFO: Assembly: 60.0 % done. \n", + "INFO: Assembly: 70.0 % done. \n", + "INFO: Assembly: 80.0 % done. \n", + "INFO: Assembly: 90.0 % done. \n", + "INFO: Assembly: 100.0 % done. \n", + "INFO: dim = 807\n", + "INFO: Assembling boundary problems...\n", + "INFO: Assembling boundary 1...\n", + "INFO: Assembly: 10.0 % done. \n", + "INFO: Assembly: 20.0 % done. \n", + "INFO: Assembly: 30.0 % done. \n", + "INFO: Assembly: 40.0 % done. \n", + "INFO: Assembly: 50.0 % done. \n", + "INFO: Assembly: 60.0 % done. \n", + "INFO: Assembly: 70.0 % done. \n", + "INFO: Assembly: 80.0 % done. \n", + "INFO: Assembly: 90.0 % done. \n", + "INFO: Assembly: 100.0 % done. \n", + "INFO: Assembling boundary 2...\n", + "INFO: dumping matrices to disk, file = matrices_tie_contact_3d_host_1_iteration_1.jld\n", + "INFO: Solving system\n", + "INFO: UMFPACK: solved in 0.23568201065063477 seconds. norm = 1.2500614850006646\n", + "INFO: timing info for iteration:\n", + "INFO: boundary assembly : 3.2558910846710205\n", + "INFO: field assembly : 1.247041940689087\n", + "INFO: dump matrices to disk : 1.1785790920257568\n", + "INFO: solve problem : 0.3804500102996826\n", + "INFO: update element data : 0.03557395935058594\n", + "INFO: non-linear iteration : 6.097559213638306\n", + "INFO: solver finished in 6.260515928268433 seconds.\n", + "INFO: nid near corner = 120\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777777777777707,0.027777777777777592,-0.11111111111111081]\n" + ] + } + ], + "source": [ + "using JuliaFEM.Core: DirectSolver\n", + "solver = DirectSolver()\n", + "solver.name = \"tie_contact_3d\"\n", + "solver.method = :UMFPACK\n", + "solver.nonlinear_problem = false\n", + "solver.max_iterations = 1\n", + "solver.dump_matrices = true\n", + "push!(solver, field_problem)\n", + "push!(solver, boundary_problem)\n", + "push!(solver, contact_problem)\n", + "call(solver, 0.0)\n", + "\n", + "using JuliaFEM.Test\n", + "\n", + "nid = 0\n", + "for (nid, coords) in mesh[\"nodes\"]\n", + " if isapprox(coords, [1.0, 1.0, 1.0])\n", + " info(\"nid near corner = $nid\")\n", + " break\n", + " end\n", + "end\n", + "nid\n", + "\n", + "known_value = [1/36, 1/36, -1/9]\n", + "\n", + "for element in field_problem.elements\n", + " i = indexin([nid], get_connectivity(element))[1]\n", + " i != 0 || continue\n", + " X = element(\"geometry\", 0.0)\n", + " u = element(\"displacement\", 0.0)\n", + " info(\"displacement X = $(X[i]), u = $(u[i])\")\n", + " @test isapprox(u[i], known_value, atol=1.0e-5)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO: XDFM: ndim = 807\n" + ] + } + ], + "source": [ + "xdoc, xmodel = JuliaFEM.Postprocess.xdmf_new_model()\n", + "coll = JuliaFEM.Postprocess.xdmf_new_temporal_collection(xmodel)\n", + "grid = JuliaFEM.Postprocess.xdmf_new_grid(coll; time=0.0)\n", + "\n", + "Xg = Dict{Int64, Vector{Float64}}()\n", + "ug = Dict{Int64, Vector{Float64}}()\n", + "for element in field_problem.elements\n", + " conn = get_connectivity(element)\n", + " X = element(\"geometry\", 0.0)\n", + " u = element(\"displacement\", 0.0)\n", + " for (i, c) in enumerate(conn)\n", + " Xg[c] = X[i]\n", + " ug[c] = u[i]\n", + " end\n", + "end\n", + "perm = sort(collect(keys(Xg)))\n", + "nodes = Vector{Float64}[Xg[i] for i in perm]\n", + "disp = Vector{Float64}[ug[i] for i in perm]\n", + "elements = []\n", + "for el in field_problem.elements\n", + " isa(el, JuliaFEM.Core.Element{JuliaFEM.Core.Tet4}) || continue\n", + " push!(elements, (:Tet4, get_connectivity(el)))\n", + "end\n", + "#elements\n", + "JuliaFEM.Postprocess.xdmf_new_mesh!(grid, nodes, elements)\n", + "JuliaFEM.Postprocess.xdmf_new_nodal_field!(grid, \"displacement\", disp)\n", + "JuliaFEM.Postprocess.xdmf_save_model(xdoc, \"/tmp/blocks_tet4.xmf\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/src/mortar.jl b/src/mortar.jl index b241323..7d848f2 100644 --- a/src/mortar.jl +++ b/src/mortar.jl @@ -749,6 +749,12 @@ function assemble!{E<:MortarElements3D}(assembly::Assembly, problem::BoundaryPro for p in slave_element("geometry", time) push!(Sl, project_point_to_auxiliary_plane(p, x0, Q)) end + + #= + Sl = reverse(Sl) + slave_dofs = reverse(slave_dofs) + =# + @debug begin info("auxiliary plane coords and basis: origo = $x0") info("basis:") @@ -871,6 +877,7 @@ function assemble!{E<:MortarElements3D}(assembly::Assembly, problem::BoundaryPro end # evaluate shape functions values in gauss point and add contribution to matrices N1 = slave_element(xi_slave, time) + #N1 = reshape(reverse(vec(N1)), size(N1)) N2 = master_element(xi_master, time) # calculate determiant of jacobian diff --git a/src/preprocess_aster_reader.jl b/src/preprocess_aster_reader.jl index c297813..f768000 100644 --- a/src/preprocess_aster_reader.jl +++ b/src/preprocess_aster_reader.jl @@ -244,8 +244,7 @@ end global const med_elmap = Dict{Symbol, Vector{Int}}( :HE8 => [4, 8, 7, 3, 1, 5, 6, 2], - :QU4 => [4, 3, 2, 1], - :SE2 => [2, 1] + :TE4 => [2, 3, 4, 1] ) function get_connectivity(med::MEDFile, elsets, mesh_name) @@ -270,8 +269,8 @@ function get_connectivity(med::MEDFile, elsets, mesh_name) if haskey(med_elmap, eltype) elco = elco[med_elmap[eltype]] else - warn("no element mapping info found for element type $eltype") - warn("consider this as a warning: element may have french nodal ordering") + #warn("no element mapping info found for element type $eltype") + #warn("consider this as a warning: element may have french nodal ordering") end d[element_ids[i]] = (eltype, elset, elco) end From 9d85761c42fd544d37f208a24521b483f65348fd Mon Sep 17 00:00:00 2001 From: Jukka Aho Date: Thu, 17 Dec 2015 22:28:15 +0200 Subject: [PATCH 2/2] 3d tie contact with multiple boundaries, shared nodes etc. --- notebooks/2015-12-13-3d-tie-contact.ipynb | 301 ++++++++++++++++++++++ 1 file changed, 301 insertions(+) diff --git a/notebooks/2015-12-13-3d-tie-contact.ipynb b/notebooks/2015-12-13-3d-tie-contact.ipynb index e93c475..45b6d8b 100644 --- a/notebooks/2015-12-13-3d-tie-contact.ipynb +++ b/notebooks/2015-12-13-3d-tie-contact.ipynb @@ -1000,6 +1000,307 @@ " style=\"width:80%; height:auto; vertical-align:middle;\">" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Several contacts with shared nodes" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO: Found 12 element sets: BLOCK4_TO_BLOCK3, SYM12, SYM23, BLOCK4_TO_BLOCK2, BLOCK3_TO_BLOCK4, BLOCK1_TO_BLOCK3, SYM13, LOAD, BLOCK1_TO_BLOCK2, BLOCK2_TO_BLOCK4, BLOCK2_TO_BLOCK1, BLOCK3_TO_BLOCK1\n" + ] + }, + { + "data": { + "text/plain": [ + "Dict{ASCIIString,Any} with 2 entries:\n", + " \"nodes\" => Dict(306=>[0.0,0.8469606634303125,0.4191161978569679],29=>[…\n", + " \"connectivity\" => Dict(2843=>(:TE4,:OTHER,[631,574,595,513]),1316=>(:TR3,:SYM…" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using JuliaFEM\n", + "using JuliaFEM.Preprocess: parse_aster_med_file\n", + "using JuliaFEM.Core: LinearElasticityProblem, DirichletProblem, get_connectivity, Tri3, Tet4, LinearSolver, update\n", + "mesh = parse_aster_med_file(Pkg.dir(\"JuliaFEM\")*\"/geometry/unit_box/SUPERBLOCK.med\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO: created 2878 elements.\n", + "INFO: created 403 boundary elements.\n" + ] + } + ], + "source": [ + "# interior elements are of type HE8\n", + "field_problem = LinearElasticityProblem()\n", + "\n", + "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " eltype == :TE4 || continue\n", + " element = Tet4(elcon)\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " element[\"youngs modulus\"] = 900.0\n", + " element[\"poissons ratio\"] = 0.25\n", + " #info(\"lower: add element with connectivity $elcon\")\n", + " push!(field_problem, element)\n", + "end\n", + "\n", + "# Neumann boundary condition, traction force -100 on Z direction for element set LOAD\n", + "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " (eltype == :TR3) && (elset == :LOAD) || continue\n", + " element = Tri3(elcon)\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " element[\"displacement traction force 3\"] = -100.0\n", + " push!(field_problem, element)\n", + "end\n", + "info(\"created $(length(field_problem.elements)) elements.\")\n", + "\n", + "# boundary conditions\n", + "boundary_problem = DirichletProblem(\"displacement\", 3)\n", + "\n", + "for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " (eltype == :TR3) && (elset in [:SYM23, :SYM12, :SYM13]) || continue\n", + " element = Tri3(elcon)\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " if elset == :SYM23\n", + " element[\"displacement 1\"] = 0.0\n", + " elseif elset == :SYM12\n", + " element[\"displacement 3\"] = 0.0\n", + " elseif elset == :SYM13\n", + " element[\"displacement 2\"] = 0.0\n", + " end\n", + " push!(boundary_problem, element)\n", + "end\n", + "info(\"created $(length(boundary_problem.elements)) boundary elements.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Contact pairs: BLOCK1 <-> BLOCK3, BLOCK1 <-> BLOCK2, BLOCK2 <-> BLOCK4, BLOCK3 <-> BLOCK4" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "using JuliaFEM.Core: Element, MortarProblem, calculate_normal_tangential_coordinates!\n", + "\n", + "function create_contact(master_surface, slave_surface)\n", + "\n", + " master_elements = JuliaFEM.Core.Element[]\n", + " for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " (eltype == :TR3) && (elset == master_surface) || continue\n", + " element = Tri3(elcon)\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " push!(master_elements, element)\n", + " end\n", + "\n", + " contact_problem = MortarProblem(\"displacement\", 3)\n", + " for (elid, (eltype, elset, elcon)) in mesh[\"connectivity\"]\n", + " (eltype == :TR3) && (elset == slave_surface) || continue\n", + " element = Tri3(reverse(elcon))\n", + " update(element, \"geometry\", mesh[\"nodes\"])\n", + " element[\"master elements\"] = master_elements\n", + " calculate_normal_tangential_coordinates!(element, 0.0)\n", + " push!(contact_problem, element)\n", + " end\n", + "\n", + " return contact_problem\n", + "end\n", + "\n", + "tie1 = create_contact(:BLOCK1_TO_BLOCK3, :BLOCK3_TO_BLOCK1)\n", + "tie2 = create_contact(:BLOCK1_TO_BLOCK2, :BLOCK2_TO_BLOCK1)\n", + "tie3 = create_contact(:BLOCK2_TO_BLOCK4, :BLOCK4_TO_BLOCK2)\n", + "tie4 = create_contact(:BLOCK3_TO_BLOCK4, :BLOCK4_TO_BLOCK3);" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO: # of field problems: 1\n", + "INFO: # of boundary problems: 5\n", + "INFO: Starting iteration 1\n", + "INFO: Assembling field problems...\n", + "INFO: Assembling body 1...\n", + "INFO: Assembly: 10.0 % done. \n", + "INFO: Assembly: 20.0 % done. \n", + "INFO: Assembly: 30.0 % done. \n", + "INFO: Assembly: 40.0 % done. \n", + "INFO: Assembly: 50.0 % done. \n", + "INFO: Assembly: 60.0 % done. \n", + "INFO: Assembly: 70.0 % done. \n", + "INFO: Assembly: 80.0 % done. \n", + "INFO: Assembly: 90.0 % done. \n", + "INFO: Assembly: 100.0 % done. \n", + "INFO: dim = 2562\n", + "INFO: Assembling boundary problems...\n", + "INFO: Assembling boundary 1...\n", + "INFO: Assembly: 10.0 % done. \n", + "INFO: Assembly: 20.0 % done. \n", + "INFO: Assembly: 30.0 % done. \n", + "INFO: Assembly: 40.0 % done. \n", + "INFO: Assembly: 50.0 % done. \n", + "INFO: Assembly: 60.0 % done. \n", + "INFO: Assembly: 70.0 % done. \n", + "INFO: Assembly: 80.0 % done. \n", + "INFO: Assembly: 90.0 % done. \n", + "INFO: Assembly: 100.0 % done. \n", + "INFO: Assembling boundary 2...\n", + "INFO: Assembling boundary 3...\n", + "INFO: Assembling boundary 4...\n", + "INFO: Assembling boundary 5...\n", + "INFO: dumping matrices to disk, file = matrices_tie_contact_3d_host_1_iteration_1.jld\n", + "INFO: Solving system\n", + "INFO: UMFPACK: solved in 0.2858870029449463 seconds. norm = 1.9710688787586395\n", + "INFO: timing info for iteration:\n", + "INFO: boundary assembly : 10.795902967453003\n", + "INFO: field assembly : 1.356456995010376\n", + "INFO: dump matrices to disk : 1.1161930561065674\n", + "INFO: solve problem : 0.4241180419921875\n", + "INFO: update element data : 0.05763602256774902\n", + "INFO: non-linear iteration : 13.75032901763916\n", + "INFO: solver finished in 13.92406702041626 seconds.\n", + "INFO: nid near corner = 502\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777977912483327,0.02776944079303928,-0.11111675469425412]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777977912483327,0.02776944079303928,-0.11111675469425412]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777977912483327,0.02776944079303928,-0.11111675469425412]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777977912483327,0.02776944079303928,-0.11111675469425412]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777977912483327,0.02776944079303928,-0.11111675469425412]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777977912483327,0.02776944079303928,-0.11111675469425412]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777977912483327,0.02776944079303928,-0.11111675469425412]\n", + "INFO: displacement X = [1.0,1.0,1.0], u = [0.027777977912483327,0.02776944079303928,-0.11111675469425412]\n" + ] + } + ], + "source": [ + "using JuliaFEM.Core: DirectSolver\n", + "solver = DirectSolver()\n", + "solver.name = \"tie_contact_3d\"\n", + "solver.method = :UMFPACK\n", + "solver.nonlinear_problem = false\n", + "solver.max_iterations = 1\n", + "solver.dump_matrices = true\n", + "push!(solver, field_problem)\n", + "push!(solver, boundary_problem)\n", + "push!(solver, tie1, tie2, tie3, tie4)\n", + "call(solver, 0.0)\n", + "\n", + "using JuliaFEM.Test\n", + "\n", + "nid = 0\n", + "for (nid, coords) in mesh[\"nodes\"]\n", + " if isapprox(coords, [1.0, 1.0, 1.0])\n", + " info(\"nid near corner = $nid\")\n", + " break\n", + " end\n", + "end\n", + "nid\n", + "\n", + "known_value = [1/36, 1/36, -1/9]\n", + "\n", + "for element in field_problem.elements\n", + " i = indexin([nid], get_connectivity(element))[1]\n", + " i != 0 || continue\n", + " X = element(\"geometry\", 0.0)\n", + " u = element(\"displacement\", 0.0)\n", + " info(\"displacement X = $(X[i]), u = $(u[i])\")\n", + " @test isapprox(u[i], known_value, atol=1.0e-3)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO: XDFM: ndim = 2562\n" + ] + } + ], + "source": [ + "xdoc, xmodel = JuliaFEM.Postprocess.xdmf_new_model()\n", + "coll = JuliaFEM.Postprocess.xdmf_new_temporal_collection(xmodel)\n", + "grid = JuliaFEM.Postprocess.xdmf_new_grid(coll; time=0.0)\n", + "\n", + "Xg = Dict{Int64, Vector{Float64}}()\n", + "ug = Dict{Int64, Vector{Float64}}()\n", + "for element in field_problem.elements\n", + " conn = get_connectivity(element)\n", + " X = element(\"geometry\", 0.0)\n", + " u = element(\"displacement\", 0.0)\n", + " for (i, c) in enumerate(conn)\n", + " Xg[c] = X[i]\n", + " ug[c] = u[i]\n", + " end\n", + "end\n", + "perm = sort(collect(keys(Xg)))\n", + "nodes = Vector{Float64}[Xg[i] for i in perm]\n", + "disp = Vector{Float64}[ug[i] for i in perm]\n", + "elements = []\n", + "for el in field_problem.elements\n", + " isa(el, JuliaFEM.Core.Element{JuliaFEM.Core.Tet4}) || continue\n", + " push!(elements, (:Tet4, get_connectivity(el)))\n", + "end\n", + "#elements\n", + "JuliaFEM.Postprocess.xdmf_new_mesh!(grid, nodes, elements)\n", + "JuliaFEM.Postprocess.xdmf_new_nodal_field!(grid, \"displacement\", disp)\n", + "JuliaFEM.Postprocess.xdmf_save_model(xdoc, \"/tmp/superblock.xmf\");" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "" + ] + }, { "cell_type": "code", "execution_count": null,