diff --git a/test/test_linear_elasticity.jl b/test/test_linear_elasticity.jl index 3d489d9..d7df92e 100644 --- a/test/test_linear_elasticity.jl +++ b/test/test_linear_elasticity.jl @@ -58,91 +58,6 @@ end # test_plane_stress_linear_elasticplastic_with_surface_load() -function test_continuum_elasticity_with_surface_load() - nodes = JuliaFEM.Preprocess.aster_parse_nodes(""" - COOR_3D - N1 0.0 0.0 0.0 - N2 1.0 0.0 0.0 - N3 1.0 1.0 0.0 - N4 0.0 1.0 0.0 - N5 0.0 0.0 1.0 - N6 1.0 0.0 1.0 - N7 1.0 1.0 1.0 - N8 0.0 1.0 1.0 - FINSF - """) - - function set_geometry!(element, nodes) - element["geometry"] = Vector{Float64}[nodes[i] for i in get_connectivity(element)] - end - element1 = Hex8([1, 2, 3, 4, 5, 6, 7, 8]) - set_geometry!(element1, nodes) - element1["youngs modulus"] = 900.0 - element1["poissons ratio"] = 0.25 - - element2 = Quad4([5, 6, 7, 8]) - set_geometry!(element2, nodes) - element2["displacement traction force"] = Vector{Float64}[[0.0, 0.0, -100.0] for i=1:4] - - problem = LinearElasticityProblem() - push!(problem, element1) - push!(problem, element2) -#= - free_dofs = zeros(Bool, 8, 3) - x = 1 - y = 2 - z = 3 - free_dofs[2, x] = true - free_dofs[3, [x, y]] = true - free_dofs[4, y] = true - free_dofs[5, z] = true - free_dofs[6, [x, z]] = true - free_dofs[7, [x, y, z]] = true - free_dofs[8, [y, z]] = true - free_dofs = find(vec(free_dofs')) - info("free dofs: $free_dofs") - - ass = assemble(problem, 0.0) - f = full(ass.force_vector) - K = full(ass.stiffness_matrix) -# info("initial force vector") -# dump(reshape(f, 3, 8)) -# info("initial stiffness matrix") -# dump(round(Int, K)[free_dofs, free_dofs]) - u = zeros(3, 8) - u[free_dofs] = K[free_dofs, free_dofs] \ f[free_dofs] - info("result vector") - dump(u) -=# - - dx = Quad4([1, 4, 8, 5]) - dx["displacement 1"] = 0.0 - dy = Quad4([1, 5, 6, 2]) - dy["displacement 2"] = 0.0 - dz = Quad4([1, 2, 3, 4]) - dz["displacement 3"] = 0.0 - bc = DirichletProblem("displacement", 3) - for el in [dx, dy, dz] - set_geometry!(el, nodes) - push!(bc, el) - end - solver = LinearSolver() - push!(solver, problem) - push!(solver, bc) -# solver.dump_matrices = true -# solver.name = "3d_hex8" - solver(0.0) - - X = element1("geometry", [1.0, 1.0, 1.0], 0.0) - u = element1("displacement", [1.0, 1.0, 1.0], 0.0) - info("displacement at $X = $u") - - # verified using Code Aster. - # 2015-12-12-continuum-elasticity/c3d_linear.* - # [1/36, 1/36, -1/9] - @test isapprox(u, [2.77777777777778E-02, 2.77777777777778E-02, -1.11111111111111E-01]) -end -# test_continuum_elasticity_with_surface_load() end