From 257f144aa2c1765ade25c3d0c9fc46e901cc4423 Mon Sep 17 00:00:00 2001 From: TeroFrondelius Date: Tue, 25 Oct 2016 16:49:00 +0300 Subject: [PATCH] create_surface_elements function added, thanks @ahojukka5 for help --- src/preprocess.jl | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/preprocess.jl b/src/preprocess.jl index 94caf8b..9a05208 100644 --- a/src/preprocess.jl +++ b/src/preprocess.jl @@ -132,6 +132,29 @@ function create_elements(mesh::Mesh, element_sets::AbstractString...; element_ty return create_elements(mesh, element_sets...; element_type=element_type) end +""" +This function gerates surface elements from solid elements + +slave = create_surface_elements(mesh, :slave_surf) +master = create_surface_elements(mesh, :master_surf) +""" +function create_surface_elements(mesh::Mesh, surface_name::Symbol) + elements = [] + for (parent_element_id, parent_element_side) in mesh.surfaces[surface_name] + parent_element_type = mesh.element_types[parent_element_id] + parent_element_connectivity = mesh.elements[parent_element_id] + + child_element_type, child_element_lconn, child_element_connectivity = + get_child_element(parent_element_type, parent_element_side, + parent_element_connectivity) + + child_element = Element(JuliaFEM.(child_element_type), child_element_connectivity) + push!(elements, child_element) + end + update!(elements, "geometry", mesh.nodes) + return elements +end + """ find npts nearest nodes from mesh and return id numbers as list. """ function find_nearest_nodes(mesh::Mesh, coords::Vector, npts=1) dist = Dict{Int64, Float64}()