mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-22 02:40:51 +00:00
Updated concept of elements.
This commit is contained in:
+45
-29
@@ -5,45 +5,61 @@ using FactCheck
|
||||
using Logging
|
||||
@Logging.configure(level=INFO)
|
||||
|
||||
using JuliaFEM.abaqus_reader: parse_abaqus, parse_element_section
|
||||
#using JuliaFEM.abaqus_reader: parse_abaqus, parse_element_section
|
||||
include(Pkg.dir("JuliaFEM")*"/src/abaqus_reader.jl")
|
||||
|
||||
facts("test import abaqus model") do
|
||||
# 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
|
||||
@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
|
||||
end
|
||||
|
||||
facts("test that reader throws error when dimension information of elemenet is missing") do
|
||||
# *ELEMENT, TYPE=neverseenbefore, ELSET=Body1
|
||||
data = """
|
||||
1, 243, 240, 191, 117, 245, 242, 244,
|
||||
1, 2, 196
|
||||
"""
|
||||
model = Dict()
|
||||
header = Dict("section"=>"ELEMENT", "options" => Dict("TYPE" => "neverseenbefore", "ELSET"=>"Body1"))
|
||||
@fact_throws parse_element_section(model, header, data)
|
||||
# *ELEMENT, TYPE=neverseenbefore, ELSET=Body1
|
||||
data = """
|
||||
1, 243, 240, 191, 117, 245, 242, 244,
|
||||
1, 2, 196
|
||||
"""
|
||||
model = Dict()
|
||||
header = Dict("section"=>"ELEMENT", "options" => Dict("TYPE" => "neverseenbefore", "ELSET"=>"Body1"))
|
||||
@fact_throws parse_element_section(model, header, data)
|
||||
end
|
||||
|
||||
facts("read element section") do
|
||||
data = """
|
||||
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)
|
||||
@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]
|
||||
end
|
||||
|
||||
facts("test unknown handler warning message") do
|
||||
fn = tempname()
|
||||
fid = open(fn, "w")
|
||||
testdata = """
|
||||
*ELEMENT2, TYPE=C3D10, ELSET=Body1
|
||||
1, 243, 240, 191, 117, 245, 242, 244,
|
||||
1, 2, 196
|
||||
"""
|
||||
write(fid, testdata)
|
||||
close(fid)
|
||||
fid = open(fn)
|
||||
model = parse_abaqus(fid)
|
||||
close(fid)
|
||||
# empty model expected, parser doesn't know what to do with unknown section
|
||||
@fact length(model) => 0
|
||||
fn = tempname()
|
||||
fid = open(fn, "w")
|
||||
testdata = """
|
||||
*ELEMENT2, TYPE=C3D10, ELSET=Body1
|
||||
1, 243, 240, 191, 117, 245, 242, 244,
|
||||
1, 2, 196
|
||||
"""
|
||||
write(fid, testdata)
|
||||
close(fid)
|
||||
fid = open(fn)
|
||||
model = parse_abaqus(fid)
|
||||
close(fid)
|
||||
# empty model expected, parser doesn't know what to do with unknown section
|
||||
@fact length(model) --> 0
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user