mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-26 20:01:32 +00:00
abaqus_reader.jl not independent from Model
This commit is contained in:
+30
-27
@@ -3,17 +3,17 @@
|
||||
|
||||
module AbaqusReaderTests
|
||||
|
||||
using JuliaFEM
|
||||
#using JuliaFEM
|
||||
using JuliaFEM.Test
|
||||
|
||||
using JuliaFEM: parse_abaqus, parse_element_section
|
||||
using JuliaFEM.Preprocess: parse_abaqus, parse_section
|
||||
|
||||
function test_read_abaqus_model()
|
||||
# FIXME: get_test_data()
|
||||
model = open(parse_abaqus, Pkg.dir("JuliaFEM")*"/geometry/3d_beam/palkki.inp")
|
||||
@test length(model["nodes"]) == 298
|
||||
@test length(model["elements"]) == 120
|
||||
@test length(model["elsets"]["Body1"]) == 120
|
||||
@test length(model["elsets"]["BODY1"]) == 120
|
||||
@test length(model["nsets"]["SUPPORT"]) == 9
|
||||
@test length(model["nsets"]["LOAD"]) == 9
|
||||
@test length(model["nsets"]["TOP"]) == 83
|
||||
@@ -33,50 +33,53 @@ end
|
||||
=#
|
||||
|
||||
function test_read_element_section()
|
||||
data = """
|
||||
data = """*ELEMENT, TYPE=C3D10, ELSET=BEAM
|
||||
1, 243, 240, 191, 117, 245, 242, 244,
|
||||
1, 2, 196
|
||||
2, 204, 199, 175, 130, 207, 208, 209,
|
||||
3, 4, 176
|
||||
"""
|
||||
model = Dict()
|
||||
header = Dict(
|
||||
"section" => "ELEMENT",
|
||||
"options" => Dict("TYPE" => "C3D10", "ELSET" => "BEAM"))
|
||||
parse_element_section(model, header, data)
|
||||
data = split(data, "\n")
|
||||
model = Dict{AbstractString, Any}()
|
||||
model["nsets"] = Dict{AbstractString, Vector{Int}}()
|
||||
model["elsets"] = Dict{AbstractString, Vector{Int}}()
|
||||
model["elements"] = Dict{Integer, Any}()
|
||||
parse_section(model, data, :ELEMENT, 1, 5, Val{:ELEMENT})
|
||||
@test length(model["elements"]) == 2
|
||||
@test model["elements"][1] == [243, 240, 191, 117, 245, 242, 244, 1, 2, 196]
|
||||
@test model["elements"][2] == [204, 199, 175, 130, 207, 208, 209, 3, 4, 176]
|
||||
@test model["elements"][1]["connectivity"] == [243, 240, 191, 117, 245, 242, 244, 1, 2, 196]
|
||||
@test model["elements"][2]["connectivity"] == [204, 199, 175, 130, 207, 208, 209, 3, 4, 176]
|
||||
@test model["elsets"]["BEAM"] == [1, 2]
|
||||
end
|
||||
|
||||
function test_read_surface_set_section()
|
||||
data = """
|
||||
31429,S1
|
||||
31481,S3
|
||||
"""
|
||||
model = Dict()
|
||||
header = Dict(
|
||||
"section" => "SURFACE",
|
||||
"options" => Dict("TYPE" => "ELEMENT", "NAME" => "LOAD"))
|
||||
parse_surface_section(model, header, data)
|
||||
@test model["surfaces"]["LOAD"] = [(31429,1), (31481,3)]
|
||||
|
||||
end
|
||||
#function test_read_surface_set_section()
|
||||
# data = """*SURFACE, TYPE=ELEMENT, NAME=LOAD
|
||||
# 31429,S1
|
||||
# 31481,S3
|
||||
# """
|
||||
# model = Dict{AbstractString, Any}()
|
||||
# model["nsets"] = Dict{AbstractString, Vector{Int}}()
|
||||
# model["elsets"] = Dict{AbstractString, Vector{Int}}()
|
||||
# model["elements"] = Dict{Integer, Any}()
|
||||
# parse_section(model, data, :SURFACE, 1, 3, Val{:SURFACE})
|
||||
# @test model["surfaces"]["LOAD"] = [(31429,1), (31481,3)]
|
||||
#
|
||||
#end
|
||||
|
||||
function test_unknown_handler_warning_message()
|
||||
fn = tempname()
|
||||
fid = open(fn, "w")
|
||||
testdata = """
|
||||
*ELEMENT2, TYPE=C3D10, ELSET=Body1
|
||||
testdata = """*ELEMENT2, TYPE=C3D10, ELSET=Body1
|
||||
1, 243, 240, 191, 117, 245, 242, 244,
|
||||
1, 2, 196
|
||||
"""
|
||||
write(fid, testdata)
|
||||
close(fid)
|
||||
model = open(parse_abaqus, fn)
|
||||
# empty model expected, parser doesn't know what to do with unknown section
|
||||
# empty model expected, parser doesn't know what to do with unknown section
|
||||
@test length(model) == 0
|
||||
end
|
||||
|
||||
|
||||
test_read_abaqus_model()
|
||||
test_read_element_section()
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user