2017-05-27 23:53:33 +02:00
|
|
|
# This file is a part of JuliaFEM.
|
|
|
|
|
# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md
|
|
|
|
|
|
2018-09-06 12:08:16 +03:00
|
|
|
using JuliaFEM, Test
|
|
|
|
|
|
|
|
|
|
# Pyr5 elasticity with point load
|
|
|
|
|
|
|
|
|
|
nodes = Dict(
|
|
|
|
|
1 => [-1.0,-1.0,-1.0],
|
|
|
|
|
2 => [ 1.0,-1.0,-1.0],
|
|
|
|
|
3 => [ 1.0, 1.0,-1.0],
|
|
|
|
|
4 => [-1.0, 1.0,-1.0],
|
|
|
|
|
5 => [ 0.0, 0.0, 1.0])
|
|
|
|
|
|
|
|
|
|
element1 = Element(Pyr5, (1, 2, 3, 4, 5))
|
|
|
|
|
baseQuad = Element(Quad4, (1, 2, 3, 4))
|
|
|
|
|
tipPoint = Element(Poi1, (5,))
|
|
|
|
|
|
|
|
|
|
update!((element1, baseQuad, tipPoint), "geometry", nodes)
|
|
|
|
|
update!(element1, "youngs modulus", 288.0)
|
|
|
|
|
update!(element1, "poissons ratio", 1/3)
|
|
|
|
|
|
|
|
|
|
update!(tipPoint, "displacement traction force 1", 5.0)
|
|
|
|
|
update!(tipPoint, "displacement traction force 2", -7.0)
|
|
|
|
|
update!(tipPoint, "displacement traction force 3", 3.0)
|
|
|
|
|
|
|
|
|
|
elasticity_problem = Problem(Elasticity, "solve continuum block", 3)
|
|
|
|
|
elasticity_problem.properties.finite_strain = false
|
|
|
|
|
add_elements!(elasticity_problem, element1, baseQuad, tipPoint)
|
|
|
|
|
|
|
|
|
|
update!(baseQuad, "displacement 1", 0.0)
|
|
|
|
|
update!(baseQuad, "displacement 2", 0.0)
|
|
|
|
|
update!(baseQuad, "displacement 3", 0.0)
|
|
|
|
|
boundary_problem = Problem(Dirichlet, "Boundary conditions", 3, "displacement")
|
|
|
|
|
add_elements!(boundary_problem, baseQuad)
|
|
|
|
|
|
|
|
|
|
analysis = Analysis(Linear)
|
|
|
|
|
add_problems!(analysis, elasticity_problem, boundary_problem)
|
|
|
|
|
run!(analysis)
|
|
|
|
|
|
|
|
|
|
xi, time = (0.0, 0.0, 1.0), 0.0
|
|
|
|
|
u = element1("displacement", xi, time)
|
|
|
|
|
u_expected = [6.9444444444427100E-02,-9.7222222222197952E-02,1.0416666666679683E-02]
|
|
|
|
|
@debug("displacement at tip", xi, time, u, u_expected)
|
|
|
|
|
# Code_Aster Result in verification/2017-05-27-pyramids/Pyr5_displacement.txt
|
|
|
|
|
@test isapprox(u, u_expected)
|