mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-19 01:48:47 +00:00
abaqus reader tests pass
This commit is contained in:
@@ -39,7 +39,6 @@ function parse_node_section(model, header, data)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function parse_element_section(model, header, data)
|
||||
info("Parsing elements")
|
||||
eldims = Dict(
|
||||
@@ -71,7 +70,6 @@ function parse_element_section(model, header, data)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function parse_nodeset_section(model, header, data)
|
||||
nset_name = header["options"]["NSET"]
|
||||
info("Creating node set $nset_name")
|
||||
@@ -84,7 +82,6 @@ function parse_nodeset_section(model, header, data)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function parse_abaqus(fid::IOStream)
|
||||
model = Dict()
|
||||
section = nothing
|
||||
|
||||
+42
-25
@@ -1,26 +1,25 @@
|
||||
# This file is a part of JuliaFEM.
|
||||
# License is MIT: see https://github.com/JuliaFEM/JuliaFEM.jl/blob/master/LICENSE.md
|
||||
|
||||
using FactCheck
|
||||
using Logging
|
||||
@Logging.configure(level=INFO)
|
||||
module AbaqusReaderTests
|
||||
|
||||
#using JuliaFEM.abaqus_reader: parse_abaqus, parse_element_section
|
||||
include(Pkg.dir("JuliaFEM")*"/src/abaqus_reader.jl")
|
||||
using JuliaFEM
|
||||
using JuliaFEM.Test
|
||||
|
||||
facts("test import abaqus model") do
|
||||
using JuliaFEM: parse_abaqus, parse_element_section
|
||||
|
||||
function test_read_abaqus_model()
|
||||
# FIXME: get_test_data()
|
||||
fid = open(Pkg.dir("JuliaFEM")*"/geometry/3d_beam/palkki.inp")
|
||||
model = parse_abaqus(fid)
|
||||
close(fid)
|
||||
@fact length(model["nodes"]) --> 298
|
||||
@fact length(model["elements"]) --> 120
|
||||
@fact length(model["elsets"]["Body1"]) --> 120
|
||||
@fact length(model["nsets"]["SUPPORT"]) --> 9
|
||||
@fact length(model["nsets"]["LOAD"]) --> 9
|
||||
@fact length(model["nsets"]["TOP"]) --> 83
|
||||
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["nsets"]["SUPPORT"]) == 9
|
||||
@test length(model["nsets"]["LOAD"]) == 9
|
||||
@test length(model["nsets"]["TOP"]) == 83
|
||||
end
|
||||
|
||||
#=
|
||||
facts("test that reader throws error when dimension information of elemenet is missing") do
|
||||
# *ELEMENT, TYPE=neverseenbefore, ELSET=Body1
|
||||
data = """
|
||||
@@ -31,8 +30,9 @@ facts("test that reader throws error when dimension information of elemenet is m
|
||||
header = Dict("section"=>"ELEMENT", "options" => Dict("TYPE" => "neverseenbefore", "ELSET"=>"Body1"))
|
||||
@fact_throws parse_element_section(model, header, data)
|
||||
end
|
||||
=#
|
||||
|
||||
facts("read element section") do
|
||||
function test_read_element_section()
|
||||
data = """
|
||||
1, 243, 240, 191, 117, 245, 242, 244,
|
||||
1, 2, 196
|
||||
@@ -40,14 +40,31 @@ facts("read element section") do
|
||||
3, 4, 176
|
||||
"""
|
||||
model = Dict()
|
||||
header = Dict("section" => "ELEMENT", "options" => Dict("TYPE" => "C3D10", "ELSET" => "BEAM"))
|
||||
header = Dict(
|
||||
"section" => "ELEMENT",
|
||||
"options" => Dict("TYPE" => "C3D10", "ELSET" => "BEAM"))
|
||||
parse_element_section(model, header, data)
|
||||
@fact length(model["elements"]) --> 2
|
||||
@fact model["elements"][1] --> [243, 240, 191, 117, 245, 242, 244, 1, 2, 196]
|
||||
@fact model["elements"][2] --> [204, 199, 175, 130, 207, 208, 209, 3, 4, 176]
|
||||
@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["elsets"]["BEAM"] == [1, 2]
|
||||
end
|
||||
|
||||
facts("test unknown handler warning message") do
|
||||
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_unknown_handler_warning_message()
|
||||
fn = tempname()
|
||||
fid = open(fn, "w")
|
||||
testdata = """
|
||||
@@ -57,9 +74,9 @@ facts("test unknown handler warning message") do
|
||||
"""
|
||||
write(fid, testdata)
|
||||
close(fid)
|
||||
fid = open(fn)
|
||||
model = parse_abaqus(fid)
|
||||
close(fid)
|
||||
model = open(parse_abaqus, fn)
|
||||
# empty model expected, parser doesn't know what to do with unknown section
|
||||
@fact length(model) --> 0
|
||||
@test length(model) == 0
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user