2d tie contact working.

This commit is contained in:
Jukka Aho
2015-11-24 03:06:56 +02:00
parent b7af1ebcaa
commit fe55cb0faa
19 changed files with 1531 additions and 199 deletions
+13 -10
View File
@@ -1,8 +1,9 @@
# This file is a part of JuliaFEM.
# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md
# Let's drop here all integration schemes and some defaults for different element types
function get_default_integration_points(element::Quad4)
function get_integration_points(Quad4::Element)
[
IntegrationPoint(1.0/sqrt(3.0)*[-1, -1], 1.0),
IntegrationPoint(1.0/sqrt(3.0)*[ 1, -1], 1.0),
@@ -11,21 +12,22 @@ function get_default_integration_points(element::Quad4)
]
end
typealias LineElement Union{Seg2, Seg3}
function line1()
function get_integration_points(element::LineElement, ::Type{Val{1}})
[
IntegrationPoint([0.0], 2.0)
]
end
function line2()
function get_integration_points(element::LineElement, ::Type{Val{2}})
[
IntegrationPoint([-sqrt(1/3)], 1)
IntegrationPoint([+sqrt(1/3)], 1)
]
end
function line3()
function get_integration_points(element::LineElement, ::Type{Val{3}})
[
IntegrationPoint([0.0], 8/9),
IntegrationPoint([-sqrt(3/5)], 5/9),
@@ -33,7 +35,7 @@ function line3()
]
end
function line4()
function get_integration_points(element::LineElement, ::Type{Val{4}})
[
IntegrationPoint([+sqrt(3/7 - 2/7*sqrt(6/5))], (18+sqrt(30))/36)
IntegrationPoint([-sqrt(3/7 - 2/7*sqrt(6/5))], (18+sqrt(30))/36)
@@ -42,7 +44,7 @@ function line4()
]
end
function line5()
function get_integration_points(element::LineElement, ::Type{Val{5}})
[
IntegrationPoint([-1/3*sqrt(5 + 2*sqrt(10/7))], (322-13*sqrt(70))/900),
IntegrationPoint([-1/3*sqrt(5 - 2*sqrt(10/7))], (322+13*sqrt(70))/900),
@@ -52,10 +54,11 @@ function line5()
]
end
function get_default_integration_points(element::Seg2)
return line1()
function get_integration_points(element::Seg2)
return get_integration_points(element, Val{1})
end
function get_default_integration_points(element::MSeg2)
return line3()
function get_integration_points(element::Seg3)
return get_integration_points(element, Val{2})
end