2015-11-12 07:16:25 +02:00
|
|
|
# This file is a part of JuliaFEM.
|
|
|
|
|
# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md
|
|
|
|
|
|
2016-02-11 18:42:20 +02:00
|
|
|
type Mortar <: BoundaryProblem
|
2016-06-22 01:39:28 +03:00
|
|
|
dimension :: Int
|
2016-02-24 10:35:18 +02:00
|
|
|
rotate_normals :: Bool
|
2016-06-19 20:01:37 +03:00
|
|
|
adjust :: Bool
|
2016-06-25 04:12:53 +03:00
|
|
|
dual_basis :: Bool
|
2016-06-27 16:11:33 +03:00
|
|
|
use_forwarddiff :: Bool
|
|
|
|
|
distval :: Float64
|
2016-07-10 04:26:21 +03:00
|
|
|
store_fields :: Vector{Symbol}
|
2015-11-18 01:19:04 +02:00
|
|
|
end
|
|
|
|
|
|
2016-02-11 18:42:20 +02:00
|
|
|
function Mortar()
|
2016-06-27 16:11:33 +03:00
|
|
|
default_fields = []
|
|
|
|
|
return Mortar(-1, false, false, false, false, Inf, default_fields)
|
2016-02-11 18:42:20 +02:00
|
|
|
end
|
2015-11-24 03:06:56 +02:00
|
|
|
|
2016-06-25 04:12:53 +03:00
|
|
|
function get_unknown_field_name(problem::Problem{Mortar})
|
2016-02-11 18:42:20 +02:00
|
|
|
return "reaction force"
|
|
|
|
|
end
|
2015-11-24 03:06:56 +02:00
|
|
|
|
2016-02-16 12:25:24 +02:00
|
|
|
function get_formulation_type(problem::Problem{Mortar})
|
2016-06-27 16:11:33 +03:00
|
|
|
if problem.properties.use_forwarddiff
|
|
|
|
|
return :forwarddiff
|
|
|
|
|
else
|
|
|
|
|
return :incremental
|
|
|
|
|
end
|
2016-02-16 12:25:24 +02:00
|
|
|
end
|
|
|
|
|
|
2016-06-27 16:11:33 +03:00
|
|
|
function assemble!(problem::Problem{Mortar}, time::Float64)
|
2016-06-25 04:12:53 +03:00
|
|
|
if problem.properties.dimension == -1
|
|
|
|
|
problem.properties.dimension = dim = size(first(problem.elements), 1)
|
|
|
|
|
info("assuming dimension of mesh tie surface is $dim")
|
|
|
|
|
info("if this is wrong set is manually using problem.properties.dimension")
|
2016-06-22 01:39:28 +03:00
|
|
|
end
|
2016-06-27 16:11:33 +03:00
|
|
|
dimension = Val{problem.properties.dimension}
|
|
|
|
|
use_forwarddiff = Val{problem.properties.use_forwarddiff}
|
|
|
|
|
assemble!(problem, time, dimension, use_forwarddiff)
|
2016-06-22 01:39:28 +03:00
|
|
|
end
|
|
|
|
|
|